关于this和base

 

base:
用于在派生类中实现对基类公有或者受保护成员的访问,可是只局限在构造函数、实例方法和实例属性访问器中。
MSDN中小结的具体功能包括:
    (1)调用基类上已被其余方法重写的方法。
    (2)指定建立派生类实例时应调用的基类构造函数。
base经常使用于,在派生类对象初始化时和基类进行通讯。
base能够访问基类的公有成员和受保护成员,私有成员是不可访问的。
在多层继承中,base能够指向的父类的方法有两种状况:一是有重载存在的状况下,base将指向直接继承的父类成员的方法;而没有重载存在的状况下,base能够指向任何上级父类的公有或者受保护方法。
this:
用于引用类的当前实例,也包括继承而来的方法,一般能够隐藏this。
MSDN中的小结功能主要包括:app

    (1)限定被类似的名称隐藏的成员
    (2)将对象做为参数传递到其余方法
    (3)声明索引器
this指代类对象自己,用于访问本类的全部常量、字段、属性和方法成员,并且无论访问元素是任何访问级别。由于,this仅仅局限于对象内部,对象外部是没法看到的,这就是this的基本思想。另外,静态成员不是对象的一部分,所以不能在静态方法中引用this。函数

通用规则:this

一、尽可能少用或者不用base和this。除了避开子类的名称冲突和在一个构造函数中调用其余的构造函数以外,base和this的使用容易引发没必要要的结果。
二、在静态成员中使用base和this都是不容许的。缘由是,base和this访问的都是类的实例,也就是对象,而静态成员只能由类来访问,不能由对象来访问。
三、base是为了实现多态而设计的。
四、使用this或base关键字只能指定一个构造函数,也就是说不可同时将this和base做用在一个构造函数上。
五、简单的来讲,base用于在派生类中访问重写的基类成员;而this用于访问本类的成员,固然也包括继承而来公有和保护成员。
六、除了base,访问基类成员的另一种方式是:显示的类型转换来实现。只是该方法不能为静态方法。设计

原文出自http://apps.hi.baidu.com/share/detail/23601441对象

相关文章
相关标签/搜索