base:
用于在派生类中实现对基类公有或者受保护成员的访问,但是只局限在构造函数、实例方法和实例属性访问器中。
MSDN中小结的具体功能包括:
()调用基类上已被其他方法重写的方法。
()指定创建派生类实例时应调用的基类构造函数。
base常用于,在派生类对象初始化时和基类进行通信。
base可以访问基类的公有成员和受保护成员,私有成员是不可访问的。
在多层继承中,base可以指向的父类的方法有两种情况:一是有重载存在的情况下,base将指向直接继承的父类成员的方法;而没有重载存在的情况下,base可以指向任何上级父类的公有或者受保护方法。
this:
用于引用类的当前实例,也包括继承而来的方法,通常可以隐藏this。
MSDN中的小结功能主要包括: ()限定被相似的名称隐藏的成员
()将对象作为参数传递到其他方法
()声明索引器
this指代类对象本身,用于访问本类的所有常量、字段、属性和方法成员,而且不管访问元素是任何访问级别。因为,this仅仅局限于对象内部,对象外部是无法看到的,这就是this的基本思想。另外,静态成员不是对象的一部分,因此不能在静态方法中引用this。 通用规则: 、尽量少用或者不用base和this。除了避开子类的名称冲突和在一个构造函数中调用其他的构造函数之外,base和this的使用容易引起不必要的结果。
、在静态成员中使用base和this都是不允许的。原因是,base和this访问的都是类的实例,也就是对象,而静态成员只能由类来访问,不能由对象来访问。
、base是为了实现多态而设计的。
、使用this或base关键字只能指定一个构造函数,也就是说不可同时将this和base作用在一个构造函数上。
、简单的来说,base用于在派生类中访问重写的基类成员;而this用于访问本类的成员,当然也包括继承而来公有和保护成员。
、除了base,访问基类成员的另外一种方式是:显示的类型转换来实现。只是该方法不能为静态方法。

最新文章

  1. Django模板的继承
  2. 【CSS进阶】box-shadow 与 filter:drop-shadow 详解及奇技淫巧
  3. WinForm 窗体应用程序(初步)之一
  4. CSS HACK tab制表符导致行内元素之间的空隙如何解决
  5. [TypeScript] 建置输出单一JavaScript档案(.js)与Declaration档案(.d.ts)
  6. 笔记6:winfrom连接sql server 进行数据交换
  7. RHEL7 Ansible
  8. Zookeeper核心机制
  9. JUnit基础及第一个单元测试实例(JUnit3.8)
  10. HTML基础知识笔记(二)
  11. QTestLib Tutorial
  12. delphi删除只读文件
  13. 【★】微信之于QQ的市场哲学
  14. Python 生成随机验证码
  15. 【转】Android studio安装与配置
  16. 07-MYSQL多表查询
  17. POJOの説明
  18. V4L2应用程序框架【转】
  19. Luogu2022 有趣的数-二分答案+数位DP
  20. Hash问题----Hash强碰撞

热门文章

  1. c++11并发机制
  2. LeetCode:Sqrt(x) 解题报告
  3. 【Linux】svn添加用户
  4. C#学习笔记(25)——用刻盘器批量从U盘删除添加文件
  5. .net 微信Token验证
  6. 1433修复命令大全提权错误大全_cmd_shell组件修复
  7. PowerDesigner使用教程【转】
  8. Java编程的逻辑 (60) - 随机读写文件及其应用 - 实现一个简单的KV数据库
  9. 【oneday_onepage】——The Secret Of Steve<1>
  10. Spring Cloud Config 配置中心 自动加解密功能 JCE方式