【问题标题】:References Inheritance in C#C#中的引用继承
【发布时间】:2012-11-08 10:59:07
【问题描述】:

我有以下问题:

我在 ProjectA.dll 中有接口 IA,在 ProjectB.dll 中有 IBIB 继承 IA)。当我尝试在任何其他项目中实现IB 时,这两个引用都是必需的。嗯,对 ProjectB.dll 的引用的要求是预期的,但我有点困惑,ProjectA.dll 的引用也需要。

有人知道这个功能是怎么命名的吗?我在哪里可以找到有关此行为的详细信息?

【问题讨论】:

  • @Jon 您是否建议如果A 是一个程序集中的基,而B 是另一个程序集中的派生类,那么为了派生从第三个程序集中的B,第三个项目只需要引用ProjectB.dll,而不是ProjectA.dll?因为“类确实相互“继承”。
  • @JeppeStigNielsen:转念一想,这并不是我想出的最好的理论。 ://
  • 谢谢你们,我用接口和类检查了这两种理论,在这两种情况下都需要 ProjectA 参考。一方面很清楚,因为我们需要所有使用的类的引用。从另一边来看,ProjectB 已经有元数据,其中包含 ProjectA 的引用。

标签: c# visual-studio-2010 interface reference


【解决方案1】:

您将需要对包含您可能实现的任何接口所涉及的类的所有程序集的引用。否则,运行时如何知道任何此类的定义是什么?

【讨论】:

  • 但是 ProjectB 已经在 ProjectA 上有一个引用,所以运行时应该知道什么是 IA。所以我很困惑 %)
  • 为接受而欢呼。好吧,正如您所发现的,这不是 CLR 的设计或实现方式。有关行为的完整解释,请参阅此问题:stackoverflow.com/questions/10210729/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-19
  • 1970-01-01
  • 2015-04-19
  • 2010-09-19
  • 1970-01-01
  • 2012-10-30
相关资源
最近更新 更多