你应该调用base.methodName还是this.methodName

Stu*_*wig 4 c# syntax inheritance

如果您在一个继承自基类的类中编写代码,并且想要在该基类上调用受保护或公共方法,那么调用base.MyProtectedMethod()this.MyProtectedMethod()(在c#中)是最好的(正确还是错误)?有什么区别?两者似乎都有效.

例如:

public class MyBase()
{
    ....

    protected void DoStuff()
    {
        // some stuff
    }

}

public class MyChildClass() : MyBase
{

    public MyNewMethod()
    {
        // do some work

        this.DoStuff();
        base.DoStuff();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是两次相同的事情MyNewMethod吗?

Ree*_*sey 10

这完全相同MyNewMethod.

我只建议base.在实际需要时使用它,即:当你需要在重写方法中显式调用方法的基类版本时.

  • 请注意,这只是这种情况,因为子类实际上并没有实现/覆盖被调用的方法. (2认同)