在asp.net中有以下四种不同的写法:
1, Page.IsPostBack     Page.Validate()
2, this.IsPostBack     this.Validate()
3, base.IsPostBack     base.Validate()
4, IsPostBack          Validate()因为我刚开始接触面向对象的知识,所以有很多不懂,关于上面的写法我有很多不理解:1,静态属性和方法直接通过类名调用,否则要通过类的一个实例对象调用,但是为什么既可以写成Page.IsPostBack和Page.Validate() (通过类名调用)又可以写成this.IsPostBack     this.Validate() (通过对象调用),那么IsPostBack和Validate()到底是不是静态属性(方法)呢?2,base.Validate()跟this.Validate()有什么区别,他们的执行有什么不同,为什么在page类里面一点区别都没有上面问题也许很低级,但是我确实不懂~,希望大家能解小弟之惑~~
Thanks~~

解决方案 »

  1.   

    1.因为this就是page类啊,当然一样,如果通过类名就可调用就必然是静态的
    2.this.XX指这个类的XX方法,base.XX指this的基类的XX方法,如果两个类的方法实现是一样的,那么结果当然一样
      

  2.   

    1、不是静态方法,是虚方法。Page.IsPostBack中的Page是属性(对页面实例的引用this.Page)。
      

  3.   

    IsPostBack和Validate()都是公共的不是静态的,你调用的其实都是this.base.是调用基类方法,你没有override的话和this 的一样
      

  4.   

    this是对页面实例的引用,不是Page类。Page.IsPostBack中的Page和this.Page是一个东西。