更新:2007 年 11 月
错误消息
类型 TypeName1 同时存在于 TypeName2 和 TypeName3 中。在应用程序中引用的两个不同的程序集包含相同的命名空间和类型,这会产生混乱。
若要解决此错误,请使用 /reference(导入元数据)(C# 编译器选项) 编译器选项的别名功能,或者不引用您的程序集。
示例
此代码用歧义类型的第一个副本创建 DLL。
复制代码 | |
---|---|
// CS0433_1.cs // compile with: /target:library namespace TypeBindConflicts { public class AggPubImpAggPubImp {} } |
此代码用歧义类型的第二个副本创建 DLL。
复制代码 | |
---|---|
// CS0433_2.cs // compile with: /target:library namespace TypeBindConflicts { public class AggPubImpAggPubImp {} } |
下面的示例生成 CS0433。
复制代码 | |
---|---|
// CS0433_3.cs // compile with: /reference:cs0433_1.dll /reference:cs0433_2.dll using TypeBindConflicts; public class Test { public static void Main() { AggPubImpAggPubImp n6 = new AggPubImpAggPubImp(); // CS0433 } } |
下面的示例演示如何使用 /reference 编译器选项的别名功能来解决此 CS0433 错误。
复制代码 | |
---|---|
// CS0433_4.cs // compile with: /reference:cs0433_1.dll /reference:TypeBindConflicts=cs0433_2.dll using TypeBindConflicts; public class Test { public static void Main() { AggPubImpAggPubImp n6 = new AggPubImpAggPubImp(); } } |