【发布时间】:2011-03-17 10:03:54
【问题描述】:
如果两个程序集都定义了包含class A1 的namespace A,则这两个类被视为唯一类型。
a) 这两个命名空间是否也被认为是唯一的?
b) 如果program P 引用了这两个程序集,我们如何创建这两种类型的实例?即,当我尝试创建 A.A1 的实例时,我不断收到错误消息
using A;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
A1 a = new A1(); // error
}
}
}
c) 但是如果program P 也定义了type B.A1,那么当我声明A1 的实例时编译器不会报错:
using A;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
A1 a = new A1(); // ok
}
}
class A1 { }
}
编译器不应该抱怨,因为它不知道要使用哪个版本的A1(A.A1 来自一个引用的程序集或B.A1)?
感谢
【问题讨论】:
标签: c# assemblies namespaces