您的位置:首页 > 其它

关键字 this和base

2011-06-16 16:12 260 查看
this 和base被归于访问关键字,是用于实现继承机制的访问操作。

this 用于引用类的当前实例,也可以引用继承来的方法

this的主要功能:

•限定被相似的名称隐藏的成员
•将对象作为参数传递到其他方法
•声明索引器
•this 指代类对象本身,用于访问本类的所有常量,字段,属性和方法的成员。
•this仅仅局限于对象内部,对象外部时无法看到的,这是this的基本思想
  * 在类的构造函数中出现的this作为一个值类型,它表示对正在构造的对象本身的引用

  * 在类的方法中出现的this作为一个值类型,表示对调用该方法的对象的引用

  * 在结构的构造函数中出现的this作为一个变量类型,表示对正在构造的结构的引用

  * 在结构的方法中出现this作为一个变量类型,表示对调用该方法的结构的引用

base 用于从派生类中访问基类中的公有或受保护的成员,但只局限在构造函数、实例方法和实例属性访问器中。

base的主要功能:

•调用基类上已被其他方法重写的方法。
•指定创建派生类实例时应调用的基类构造函数
•base常用于在派生类对象初始化时和基类通信
•base可以访问积累的公有成员和受保护成员,私有成员不可以访问
•在多层继承中,base可以指向父类的方法有两种:
•一是有重载存在的情况下,base将指向直接继承的父类的方法
•在没有重载的情况下,base可以指向任何上级父类的公有或者受保护方法。

通用规则

•尽量少用或者不用this和base
•在静态成员中使用base和this都是不允许的,因为base和this访问的都是类的实例,也就是对象,而静态成员只能由类来访问,不能由对象来访问。
•base是为了实现多态而设计的
•使用this或base关键字只能指定一个构造函数,不能同时将base和this作用在同一个函数上
•base用于在派生类中访问重写的基类成员,而this用于访问本类的成员,当然也包括继承而来的公有或受保护成员
•除了base,访问基类成员的另外一种方式是:显示的类型转换来实现,只是这个方法不能为静态的方法。

msdn参考
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: