我们的库中有一个名为 Action 的类型。我们支持 VS2005、2008,现在也尝试支持 VS2010。当我将包含我们的“Action”类型和“System”的命名空间一起包含在一个文件中并尝试使用它时,它会说我们的 Action 类型和 System.Action 委托之间存在模棱两可的引用调用。这仅在 VS2010 中发生,并且它不会在 VS2008 或 VS2005 中引发错误,即使 Action 委托没有任何改变(命名空间、程序集在 3.5 和 4.0 之间都是相同的)。知道为什么会发生这种情况吗?
更新:
我创建了一个简单的应用程序来重现这个:
Class1.cs:
using System;
using System.Collections.Generic;
using System.Text;
namespace Namespace1
{
public enum Action
{
Mouse,
Keyboard
}
}
Class2.cs:
using Namespace1;
using System;
using System.Collections.Generic;
using System.Text;
namespace Namespace2
{
public class Class2
{
public Class2()
{
Action a;
}
}
}
上述代码在 VS2008 中编译良好,但在 VS2010 中抛出错误:“错误 CS0104:'Action' 是 'Namespace1.Action' 和 'System.Action' 之间的模糊引用”
当我使用 VS2010 并以 Framework 3.5 而不是 4.0 为目标时,我得到了同样的错误。
谢谢,尼兰詹