我正在尝试在C#中重写一个重写的方法(如果有道理!)。

我有一个类似于以下的情况,但是当我在“C”类的SampleMethod()中有一个断点时,没有命中它,而在“B”方法中有相同的断点了。

public class A
{
      protected virtual void SampleMethod() {}
}

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

public class C : B
{
      protected override void SampleMethod()
      {
           base.SampleMethod();
      }
}

提前致谢!

编辑:

好的,上下文会有所帮助:

这是在复合控件的上下文中,因此类A继承自CompositeControl,并在重写CreateChildControls()方法之后调用SampleMethod()。

最佳答案

没有看到调用SampleMethod的代码,我的猜测是您有一个B类型的对象,并在其上调用SampleMethod。

09-29 21:13