Ошибка компилятора CS0433
Обновлен: Ноябрь 2007
Сообщение об ошибке
Тип "TypeName1" существует как в "TypeName2", так и в "TypeName3"
The type TypeName1 exists in both TypeName2 and 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();
}
}