【问题标题】:overriding methods in C# and avoid duplicate code [duplicate]覆盖 C# 中的方法并避免重复代码 [重复]
【发布时间】:2018-12-01 18:37:18
【问题描述】:

我想重写一个方法,但我仍然希望在我重写时调用父方法。当我尝试使用 :base() 调用父方法时,它会显示 unexpected token。

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.DoStuff()。

标签: c# overriding


【解决方案1】:

你有错误的语法,你可以在方法体的任何地方使用base关键字来调用基方法。 :base() 语法仅适用于构造函数。

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

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

【讨论】:

  • 太棒了。谢谢!
  • @DavidG wops,保留原始语法,已修复
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-07
  • 2017-10-13
相关资源
最近更新 更多