【问题标题】:Extend a method in the base class c# [duplicate]在基类c#中扩展一个方法[重复]
【发布时间】:2017-09-25 21:02:45
【问题描述】:

我如何像这样从基类扩展行为?

public class A  {
    protected virtual void foo () {
        Console.WriteLine("hi")
    }
}

public class B : A  {
    protected override void foo () {
        Console.WriteLine("hihi")
    }
}

a = new A();
a.foo() 

-> "hi"
-> "hihi"

在父类中调用 foo 时,我想执行特定于该类的行为,同时在子类中调用它。是否可以仅通过访问父级来做到这一点?

【问题讨论】:

  • base.foo()...
  • 这不会只调用基地吗?这样做时我只会得到“hihi”。
  • public class B : A { protected override void foo () { base.foo(); Console.WriteLine("hihi"); } }
  • 不,你不能让 A 自动调用 B 中的方法。A,父级,不知道它的子级。

标签: c# inheritance


【解决方案1】:

你需要使用base关键字

base.myParentMethod();

如果您希望同时执行这两个操作,请在覆盖的方法中使用它。

【讨论】:

  • 哦,我不知道这是关键字,谢谢。
猜你喜欢
  • 2022-06-10
  • 2018-04-11
  • 1970-01-01
  • 2011-06-04
  • 1970-01-01
  • 1970-01-01
  • 2011-05-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多