如何在.net中有条件地继承类
本文关键字:继承 有条件 net | 更新日期: 2023-09-27 18:22:48
我不确定这是否可能,但我有一个要求,需要有条件地继承类。
例如,我有一个类名ABC有时需要继承PQR,XYZ有条件地像一样
Public Class ABC : PQR OR Public Class ABC:XYZ
因此,如果我们需要Old config inherit PQR else inherit XYZ
继承并不是这样设计的。实现这一点的方法是通过组合类或工厂类。
无论哪种方式,您都可以定义PQR和XYZ都实现的接口或抽象类。
选项1,组合:让你的类包含一个属于该接口或抽象类类型的成员,然后使用配置来决定分配给该成员的具体类。
选项2,工厂:有一个工厂类,可以根据需要生成这些对象并获取正确的对象。
您需要两个不同的类ABC1和ABC2,但您可以使它们实现相同的接口(IAbc)。
然后,您可以在代码的位置使用该接口,您通常使用ABC。
您将无法直接创建这些类的实例,但您可以在Factory类或IoC容器上进行中继。
如果您有独立版本的控件,也许您想将主窗口用作用户控件。这就是我有条件地构建窗口或用户控制的方式
如果独立
public class MyUserControl : Window
{
}
其他
public class MyUserControl : UserControl
{
}