c#:继承的类获取属性,“return this.x as DerivedClass”或“return base.x a
本文关键字:return DerivedClass as base this 获取 属性 继承 | 更新日期: 2023-09-27 18:24:07
我正在查看一些代码,我看到派生类具有get属性:
{ get { return base.hwSystem as DerivedHardwareSystem; } }
其中DerivedHardwareSystem : HardwareSystem
和hwSystem
是HardwareSystem
的成员。
以下两者有什么区别?
{ get { return base.hwSystem as DerivedHardwareSystem; } }
和
{ get { return this.hwSystem as DerivedHardwareSystem; } }
谢谢!
如果hwSystem
被覆盖,this.hwSystem
将使用该重写,而base.hwSystem
将忽略覆盖并使用基类中定义的hwSystem
。如果未覆盖hwSystem
,则它们之间没有区别。
基类和派生类 以下是对 .基本关键字意味着我还将放置一个指向MSDN的链接,该链接将进一步解释
base 关键字用于从派生类中访问基类的成员
this 关键字引用类的当前实例,也用作扩展方法的第一个参数的修饰符。
它们通常是相同的,除非派生类覆盖了 base
中已经存在的 hwSystem
属性。在这种情况下,this.hwSystem
可能是完全不同的事情。
如果您的子类具有 hwSystem
的重写或新实现,则this.hwSystem
引用子类中的版本,base.hwSystem
引用基类中的版本。
如果子类没有覆盖或创建您描述的 hwSystem
的新版本,则base.hwSystem
和this.hwSystem
引用相同的实现。请记住,如果将来有人添加新的实现,那么您就处于上述情况。