我试图在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();
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
编辑:
好的,上下文会有所帮助:
这是在复合控件的上下文中,因此类A继承CompositeControl并在覆盖CreateChildControls()方法后调用SampleMethod().
Nol*_*rin 39
只要您愿意,就可以在链中执行覆盖.您显示的代码是正确的.
您所看到的行为唯一可能的解释是您所引用的对象实际上是类型B.我建议您仔细检查一下,如果事情仍然没有意义,请发布其他合适的代码.