我对 c# 编程很陌生。因此,假设我们有两个程序集 Asm1、Asm2,其中两个类定义如下:
//Asm1
namespace ClassLibrary1
{
public class A//: B
{
B b = new B { i = 2};
public int MyProperty { get { return b.i; } }
}
}
//Asm2
namespace ClassLibrary2
{
public class B
{
public int i;
}
}
Asm1 引用 Asm2 现在我们有一个可运行的程序集,比如 asm3,它使用 Asm1 和以下代码:
//Asm3
A a = new A();
System.Console.Write(a.MyProperty.ToString());
上面的代码编译正确,没有错误。
但是当我们在类 A 中做很少的改变并让它从类 B 继承时,事情就出错了。在这种情况下,行:A a = new A(); 不编译并产生错误。但是当我们添加 asm2 作为对 asm3 的引用时,它可以工作。请告诉我为什么会这样。为什么没有直接依赖于另一个程序集的程序集必须引用它?提前致谢。