当两个引用的程序集都定义类型 A.A1 时出现问题

2024-02-08

如果两个程序集都定义namespace A含有class A1,那么这两个类被认为是唯一类型。

a) 这两个命名空间是否也被认为是唯一的?

b) If 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 )?

thanx


您可以使用以下方法解决此问题外部别名 https://www.microsoft.com/en-us/download/details.aspx?id=55984指示。

这是一个更好的解释 https://web.archive.org/web/20160201161023/http://blogs.msdn.com:80/b/ansonh/archive/2006/09/27/774692.aspx.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当两个引用的程序集都定义类型 A.A1 时出现问题 的相关文章

随机推荐