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

重写C#中的方法并避免重复代码,c#,overriding,C#,Overriding,我想重写一个方法,但我仍然希望在重写时调用父方法。当我尝试使用:base()调用父方法时,它会显示意外标记 public class A { public virtual void DoStuff() { //some code } } public class B : A { public override void DoStuff() : base() { //some other code } } 在ja

我想重写一个方法,但我仍然希望在重写时调用父方法。当我尝试使用: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()

如果语法错误,可以在方法体的任意位置使用
base
关键字调用base方法。
:base()
语法仅适用于构造函数

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

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

如果语法错误,可以在方法体的任意位置使用
base
关键字调用base方法。
:base()
语法仅适用于构造函数

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

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

不,你不能那样做。您需要从派生方法手动调用
base.DoStuff()
。不,您不能这样做。您需要从派生方法手动调用
base.DoStuff()
。太好了。谢谢@DavidG wops,保留原始语法,fixedGreat。谢谢@DavidG wops,保留原始语法,已修复