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

转载于:https://www.cnblogs.com/testsec/p/6095884.html

C# 中base和this关键字相关推荐

  1. C++:C++中public protected private关键字用法

    C++:C++中public protected private关键字用法 笔者这里主要针对C++中public protected private关键字做一个较全面的总结.首先public prot ...

  2. Java中的两个关键字——super、this

    Java中的两个关键字--super.this 神话丿小王子的博客主页 一.super super 是java中方的一个关键字,用它可以引用父类中的成员: super可用于访问父类中定义的属性 sup ...

  3. Java中的50个关键字

    2019独角兽企业重金招聘Python工程师标准>>> Java中的50个关键字 关键字也称为保留字,是指java语言中规定了特定含义的标示符.对于保留字,用户只能按照系统规定的方式 ...

  4. C++中mutable、volatile关键字

    C++中mutable.volatile关键字 mutable和volatile 很少遇到这两个关键字,学嵌入式估计知道后者,深入研究C++的估计知道前者. (1)mutable 在C++中,muta ...

  5. 在switch case 语句中能否使用continue 关键字?为什么?

    在switch case 语句中能否使用continue 关键字?为什么? #include <stdio.h>   int main()   {       int a;       p ...

  6. mysql中的merge into,SQL Server 2008中利用merge into关键实现insert/update自动匹配(类似于MySQL中的For Update关键字)...

    SQL Server 2008中利用merge into关键实现insert/update自动匹配(类似于MySQL中的For Update关键字) 语法请参考: 按照语法编写语句 DECLARE @ ...

  7. C++中struct和class关键字的区别

    文章目录 1 C++中struct和class关键字的区别 1.1 类的关键字 1 C++中struct和class关键字的区别 1.1 类的关键字 C++中类的关键字: struct在C语言中已经有 ...

  8. vb中多个串口通讯_VB中的42个关键字,你知道都是哪些吗?

    VB中的关键字大全 大家好,不知道大家在学习VB编程的过程中,有注意过VB中的关键字吗? 关键字是VB程序内部已经定义好的,可以供我们在编程时直接使用的. 大家要注意一点,在我们写VB代码时,变量或者 ...

  9. python中定义函数常用关键字_Python 中定义函数的关键字是 _________________ 。_学小易找答案...

    [其它]实验4-串和数组-实验任务书.docx [填空题]表达式 'abc' in ['abcdefg'] 的值为______________. [填空题]已知 x = range(1,4) 和 y ...

最新文章

  1. “黑”掉神经网络:腾讯披露新型AI攻击手法,主流机器学习框架受影响
  2. 连接LilyPad之Linux平台的驱动
  3. 开发环境和运行环境的区别_生产环境 VS 开发环境,关于Kubernetes的四大认识误区...
  4. php时间戳防盗链,金山云-文档中心-设置时间戳+共享密钥防盗链
  5. Linux学习笔记 1 环境变量 2 vi命令
  6. 吴恩达作业5:正则化和dropout
  7. TVM:使用 Schedule 模板和 AutoTVM 来优化算子
  8. 用java写分段函数_使用Java将分段函数转换为CSV文件
  9. 根据进程名判断该进程是否存在(C++)
  10. 在ASP.NET MVC应用程序中随机获取一个字符串
  11. JSP教程第3讲笔记
  12. Java第三方库——Jep数学公式计算
  13. 使程序默认以管理员权限运行(包括注册表修改法)
  14. 生存存疑?云计算第一股关停IoT公有云服务
  15. 网络流量分析详解(包含OSI七层模型、TCP协议及Wireshark工具用法)
  16. 一些png图片单独打开是透明的,怎么在ps里打开来就变不透明了
  17. c 语言字体怎么改,Notepad++设置字体语言格式方法介绍
  18. 双向链表增删改查分析
  19. 网络 启动计算机,电脑设置网卡启动方法步骤
  20. 如何提升w ndows10系统网速,怎么提升电脑网速win10

热门文章

  1. 解决eclipse配置Tomcat时找不到server选项
  2. 基于rhel7.2的mysql5.7.13安装与配置
  3. Spring Boot 设置启动时banner
  4. Java彻底 - WEB容器的侦听具体解释 ServletContextListener
  5. 路由器的修改权限密码、还原出厂设置、备份配置文件和升级操作系统实际操作...
  6. MyGui 3.2.0(OpenGL平台)的编译
  7. Telnet FTP Xwindow
  8. Linux 命令(129)—— passwd 命令
  9. C#将子窗体填充到父窗体的panel中
  10. 一、TensorFlow的简介和安装和一些基本概念