【问题标题】:How to Inherit Classes conditionally in .net如何在.net中有条件地继承类
【发布时间】:2015-11-20 12:32:22
【问题描述】:

我不确定这是否可能,但我有一个需要有条件地继承类的要求。

例如我有一个类名称 ABC 需要在某个时候继承 PQR 和 XYZ 有条件地像

Public Class ABC : PQR OR Public Class ABC:XYZ

所以如果我们需要旧配置继承 PQR 否则继承 XYZ,我想在 web.config 应用设置的帮助下做类似的事情

【问题讨论】:

    标签: c# asp.net .net asp.net-mvc-4


    【解决方案1】:

    这并不是继承的真正设计方式。实现这一点的方法是通过组合或工厂类。

    无论哪种方式,您都可以定义 PQR 和 XYZ 都实现的接口或抽象类。

    选项 1,组合:让您的类包含属于该接口或抽象类类型的成员,然后使用配置来决定将哪个具体类分配给该成员。

    选项 2,工厂:有一个工厂类,可以按需生成这些对象并获取正确的对象。

    【讨论】:

      【解决方案2】:

      您将需要两个不同的类 ABC1 和 ABC2,但您可以让它们实现相同的接口 (IAbc)。

      然后你就可以在你平时使用ABC的代码的地方使用接口了。

      您将无法直接创建这些类的实例,但您可以在工厂类或 IoC 容器上进行中继。

      【讨论】:

        【解决方案3】:

        也许您想将主窗口用作用户控件,例如,如果您有独立版本的控件。这就是我有条件地构建为窗口或用户控件的方式

        如果是独立的

        public class MyUserControl : Window
        {
        }
        

        其他

        public class MyUserControl : UserControl
        {
        }
        

        endif

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-22
          • 2021-02-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多