重写C#中的方法并避免重复代码
我想重写一个方法,但我仍然希望在重写时调用父方法。当我尝试使用:base()调用父方法时,它会显示意外标记重写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
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,保留原始语法,已修复