【发布时间】:2011-08-31 13:29:59
【问题描述】:
class AlphaBase
{
public bool PropA { get; set; }
}
class AlphaA : AlphaBase
{
public bool PropB { get; set; }
}
class BetaBase
{
protected AlphaBase MAlpha;
public BetaBase(AlphaBase rAlpha)
{
MAlpha = rAlpha;
}
}
class BetaA : BetaBase
{
public BetaA(AlphaA rAlpha) : base(rAlpha) {}
void DoSomething()
{
if (MAlpha.PropA) ;
if (MAlpha.ProbB) ; //wont compile
}
}
问题:如何在不为 AlphaA 创建第二个变量的情况下完成这项工作。
BetaBase 将使用 MAlpha,BetaB 也将使用 .. 我如何在没有演员表和没有 2 个参考变量的情况下实现这一目标?
谢谢
【问题讨论】:
-
简答:你不能。
-
为什么不能使用演员表?无法从基类型调用 PropB,因为基类型 AlphaBase 不知道 PropB。
标签: c# design-patterns object derived-class