【发布时间】:2013-01-28 06:30:09
【问题描述】:
我对 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 的引用时,它可以工作。请告诉我为什么会这样。 为什么没有直接依赖于另一个程序集的程序集必须引用它? 提前致谢。
【问题讨论】:
标签: c# inheritance .net-assembly