博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于this和base
阅读量:4957 次
发布时间:2019-06-12

本文共 919 字,大约阅读时间需要 3 分钟。

 

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/lzhp/archive/2011/09/01/2680799.html

你可能感兴趣的文章
Android学习笔记三:Intent实现页面跳转
查看>>
Django下JWT的使用
查看>>
React Native 的组件之底部导航栏 TabBarIOS(一)
查看>>
聊聊、SpringBoot 上传文件大小
查看>>
WF 学习笔记 (1) - 浅谈 WF 和 MVC 架构
查看>>
Monkey脚本API简介
查看>>
Linux学习笔记 之 Linux软件的安装与卸载
查看>>
在ASP.NET中,IE与Firefox下载文件带汉字名时乱码的解决方法
查看>>
从C#垃圾回收(GC)机制中挖掘性能优化方案
查看>>
HTTP Handlers and HTTP Modules in ASP.NET
查看>>
指定年月月初月末时间戳
查看>>
qt程序移植到安卓平台
查看>>
MySQL的SQL语句优化之Explain
查看>>
ionic改tab文字和icon图片的颜色
查看>>
atitit.提升开发效率---MDA 软件开发方式的革命(5)----列表查询建模
查看>>
atititi.soa 微服务 区别 联系 优缺点.doc
查看>>
Atitit.cateService分类管理新特性与设计文档说明v1
查看>>
Atitit.android播放smb 网络邻居视频文件解决方案
查看>>
WebAPI请求——js调用
查看>>
移位操作符
查看>>