基本类型的方法解析

时间:2011-04-14 17:35:06

标签: c# inheritance method-resolution-order

我的情况是这样的:

public class InheritedClass : BaseClass
{
    public override void SomeMethod()
    {
        AnotherMethod();
    }
    public override void AnotherMethod()
    {
    }
}

public class BaseClass
{
    public virtual void SomeMethod()
    { }
    public virtual void AnotherMethod()
    { }
}

当我调用InheritedClassInstance.SomeMethod时调用哪种方法?它会调用InheritedClassInstance.AnotherMethod还是BaseClass的AnotherMethod

2 个答案:

答案 0 :(得分:2)

它会调用InheritedClassInstance.AnotherMethod()

如果您希望它调用基类AnotherMethod(),您可以编写base.AnotherMethod()

答案 1 :(得分:0)

它将在继承的类上调用派生方法,除非您显式调用基本方法(base.AnotherMethod()