在我的子类中,我应该将继承的受保护的非虚方法称为this.Method()
或base.Method()
吗?
使用this
将允许我使用相同名称的新方法轻松隐藏方法。只有当确定只需要调用基类的实现时,是否应该对方法的调用明确指定base
?
答案 0 :(得分:7)
如果您要在子类中添加名为Method
的成员但仍想调用继承的方法,则应使用base.Method()
。
在更多派生类中添加名为Method
的成员不会更改this.Method()
调用的含义。
答案 1 :(得分:2)
始终使用this.Method()
致电。
如果隐藏方法,则可能需要调用新方法而不是基类中的方法。另一方面,如果你将基类的方法设为虚拟,那么你可能希望以多态方式调用代码。
很难预测未来,但这些情况似乎更有可能发生。