我正在学习C#继承。在覆盖函数时,我见过程序员使用base.method()
语句。例如: -
protected override void OnClear()
{
_currentPos = 0;
_albumFilename = null;
this.Dispose();
base.OnClear(); // Why this Statement is used?
}
任何人都可以在这里解释一下base.OnClear()
陈述的用法吗?我将很高兴并感谢你!请分享你的知识: - )
答案 0 :(得分:3)
要调用父类的OnClear()方法,已使用此代码base.OnClear()方法。
由于您要从父类重写该方法,因此如果要调用父类的方法,则应使用base
关键字来访问父类成员。
来自MSDN's documentation on base
:
base关键字用于访问基类的成员 在派生类中:
- 在已被另一个方法覆盖的基类上调用方法。 ...
醇>
答案 1 :(得分:2)
这很简单,因为被覆盖的方法具有您需要的一些功能,它知道如何清除原始类中的数据并且可以访问其私有部分。你作为继承人没有。因此,您需要调用原始实现来清除基类中的数据,并且被覆盖的代码部分处理您的数据。