C#base和this的区别

时间:2022-03-07 02:06:02

今天我一个刚学c#的伴侣俄然问我base怎么用,俄然把我问住了,想起我当年学c#根本的时候根基都是虎头蛇尾,很是后悔,于是连忙百度了下,写了这篇博客记录下来。

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,,访谒基类成员的此外一种方法是:显示的类型转换来实现。只是该要领不能为静态要领。

感言:

1.根本打不牢,学问攀不高,想要在写代码方面有一些突出的成效,除了勤学苦练,安靖的根本是必不成少的。

2.我会在近期预定一个c#根本学习打算,估量一个月。

标签:

原文地点:https://www.cnblogs.com/quangeshishen/p/8972646.html