如题
经常看到继承的代码中需要用到继承的方式时都是用base.xxxx() 的写法,但是我在继承ObservableCollection的时候,向要用First<> 的方法时用base就出错,必须要用this,所以想问这些东西的区别是什么?
经常看到继承的代码中需要用到继承的方式时都是用base.xxxx() 的写法,但是我在继承ObservableCollection的时候,向要用First<> 的方法时用base就出错,必须要用this,所以想问这些东西的区别是什么?
解决方案 »
- C#使用WINDOWS API进行串口通讯的问题
- WebBroswer如何自动完成点击链接的动作
- 用mysql做数据库 出现 Column count doesn't match value count at row 1
- C#里WinForm怎么更新SQL数据库啊?
- 投诉!
- 【求助】WMI的ASSOCIATORS OF 如何在C#下的使用.
- 请教,BitArray本身是位数组,我需要将其再促成数组,该如何描述
- sndPlaySound播放时总是要延迟呢?
- 这个怎么写???
- C#的Dialog
- C#如何导入printDocument?
- DevExpress.XtraGrid控件中将部分行设为只读?
this 当前类
但是,在当前类中用父类的的方法,this 和 base 有什么区别
还有为什么First<> 这种Linq的方法不能用在base上呢?
this是指当前类的方法,这包括了从父类继承来并重写的方法。base则只是父类的方法。第二句话看不懂。你怎么使用base?
this就是自己。这种说法比较经典。
base可以访问基类的公有成员和受保护成员,私有成员是不可访问的。
this指代类对象本身,用于访问本类的所有常量、字段、属性和方法成员,而且不管访问元素是任何访问级别
base是为了实现多态而设计的
我是继承了ObservableCollection<T>类型的
在重写的方法里本来想用base.First(c=>c.Key=="")来找东西,结果代码提示错误
"does not contain a definion for 'First'"
base
其用于在派生类中实现对基类公有或者受保护成员的访问,但是只局限在构造函数、实例方法和实例属性访问器中,MSDN中小结的具体功能包括:
调用基类上已被其他方法重写的方法。
指定创建派生类实例时应调用的基类构造函数。
this
其用于引用类的当前实例,也包括继承而来的方法,通常可以隐藏this,MSDN中的小结功能主要包括:
限定被相似的名称隐藏的成员
将对象作为参数传递到其他方法
声明索引器
this 当前类
this指当期类也就是我们所说的本类