C#中的重写方法并避免重复代码

时间:2018-06-22 09:49:04

标签: c# override method-overriding

我想重写一个方法,但是我仍然希望在重写时调用父方法。当我尝试使用 :base() 调用父方法时,它说 意外令牌

public class A 
{
    public virtual void DoStuff() 
    {
       //some code
    }
}

public class B : A 
{
    public override void DoStuff() : base()
    {
       //some other code
    }
}

在Java中,我将是:

super.DoStuff()

1 个答案:

答案 0 :(得分:3)

您使用了错误的语法,可以在方法主体中的任何位置使用base关键字来调用基本方法。 :base()语法仅适用于构造函数。

public class A 
{
    public virtual void DoStuff() 
    {
       //some code
    }
}

public class B : A 
{
    public override void DoStuff()
    {
         base.DoStuff();
    }
}