class Parent
{
    public int GetNo()
    {
        return 1;
    }
}

class Child : Parent
{
    public Child()
    {

    }

    public int GetNo()
    {
        return 2;
    }
}

Parent p = new Child();
p.GetNo();


但是它调用Base.GetNo()。我知道如果我使用virutal,它将调用Child.GetNo()
但是我不能在基类中使用virutal,因为我必须从已经分布在DLL中的基类派生我的类,所以我无法修改基类的现有功能。

任何建议都是有价值的。
谢谢

最佳答案

您可以投射它:

((Child)p).GetNo();


要么

if(p is Child)
    (p as Child).GetNo();

07-24 19:08