【问题标题】:Partial Classes across Projects跨项目的部分类
【发布时间】:2010-01-25 12:53:45
【问题描述】:

是否可以跨项目有部分类。

例如项目 1 有一个客户类。 Project2 是一个可选模块,它通过附加一个订单类并利用原始客户类来添加到客户类。

【问题讨论】:

  • 继承可能是要走的路。
  • 通过使用接口也有帮助,因为我使用接口传递 ICustomer

标签: .net mvvm projects


【解决方案1】:

您不能使用partial 关键字在项目之间拆分类的代码。 partial 关键字是一个编译器技巧;编译器将从它找到的部分中输出一个类,因此该类的所有部分必须存在于同一个二进制文件中。一旦类被编译,就没有留下它是部分类的痕迹。

如果您想扩展现有类,您需要继承它(如果它不是密封的),或者创建自己的新类,其中包含您希望从中组合信息的类。

【讨论】:

  • +1 用于提及组合作为继承的替代方案。
  • 你也可以使用扩展方法来排序或实现这一点。
【解决方案2】:

没有。部分类必须在相同的上下文中编译,即程序集。

您可能想要做的是使用Inheritance

【讨论】:

    【解决方案3】:

    部分类完全是一个编译器构造 - 它基本上将类定义连接在一起,然后编译它。 .net 中没有“部分类”的概念,因此您不能将部分类拆分到不同的编译单元(项目或程序集)

    【讨论】:

      【解决方案4】:

      您不能在单独的项目中使用部分类。但您可以使用扩展 Class Extensions 或继承或接口

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-09-19
        • 2023-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-02
        相关资源
        最近更新 更多