【发布时间】:2018-03-14 05:57:21
【问题描述】:
我们有以下代码:
public class A
{
protected virtual void Method()
{
Console.Write("A");
}
}
public class B : A
{
protected override void Method()
{
Console.Write("B");
}
}
public class C : B
{
public void Some()
{
//How to call Method() from class A?
}
}
如何在C类的Some()方法中从A类调用Method()?
我们假设 A 和 B 是库中的类,我们无法更改它们。
【问题讨论】:
-
我认为除了方法隐藏之外还有其他方法
-
在对“库”一无所知的情况下 - 看起来您应该从 A 而不是 B 派生。如果该类的其余部分应以“B”方式运行,则可以使用组合和代理除此之外的所有方法都指向 B 的内部实例。(“内部”与“私有”中的一样)但实际上:对我来说,这看起来像是一个设计审查案例。