这个。 vs基地。对于继承的受保护的非虚方法?

时间:2013-05-02 06:53:11

标签: c# oop inheritance virtual protected

在我的子类中,我应该将继承的受保护的非虚方法称为this.Method()base.Method()吗?

使用this将允许我使用相同名称的新方法轻松隐藏方法。只有当确定只需要调用基类的实现时,是否应该对方法的调用明确指定base

2 个答案:

答案 0 :(得分:7)

如果您要在子类中添加名为Method的成员但仍想调用继承的方法,则应使用base.Method()。 在更多派生类中添加名为Method的成员不会更改this.Method()调用的含义。

答案 1 :(得分:2)

始终使用this.Method()致电。

如果隐藏方法,则可能需要调用新方法而不是基类中的方法。另一方面,如果你将基类的方法设为虚拟,那么你可能希望以多态方式调用代码。

很难预测未来,但这些情况似乎更有可能发生。