【发布时间】:2011-01-22 03:50:12
【问题描述】:
我有一个基类 (PrintProviderBase)。它拥有一些状态(PrinterUnavailable、NoPaper、...)。
然后我从这个类继承:ColorPrintProvider,BlackAndWhitePrintProvider ...
我假设如果基类有这样的属性:
private PrintStateEnum State { get; set; }
然后每个子类(不同的打印提供者)都有自己的状态(尽管没有什么是静态的)。似乎base 类的一个实例在它们之间共享,而我的意思是在每个子类中都有一个base class 的副本,以便可以将通用功能和状态封装到base class 中。
现在,如果打印提供程序进入NoPaper 状态,其他提供程序会因状态不正确而停止打印。我该如何改变这种行为?
【问题讨论】:
-
您所描述的不应该发生。你能发布更多代码吗?
-
我使用
MEF的共享模式。基类有一个受保护的构造函数,子类有调用基类构造函数的私有构造函数。
标签: c# inheritance base-class