Freigeben über


Compilerfehler CS0433

Aktualisiert: November 2007

Fehlermeldung

Der Typ "Typname1" ist sowohl in "Typname2" als auch in "Typname3" vorhanden.
The type TypeName1 exists in both TypeName2 and TypeName3

Zwei Assemblys, auf die in der Anwendung verwiesen wird, enthalten den gleichen Namespace und den gleichen Typ, was zu Mehrdeutigkeit führt.

Verwenden Sie zum Lösen dieses Problems das Aliasfeature der /reference (Metadaten importieren) (C#-Compileroptionen)-Compileroption, oder verweisen Sie auf keine der Assemblys.

Beispiel

Durch diesen Code wird die DLL mit der ersten Kopie des mehrdeutigen Typs erstellt.

// CS0433_1.cs
// compile with: /target:library
namespace TypeBindConflicts 
{
   public class AggPubImpAggPubImp {}
}

Durch diesen Code wird die DLL mit der zweiten Kopie des mehrdeutigen Typs erstellt.

// CS0433_2.cs
// compile with: /target:library
namespace TypeBindConflicts 
{
   public class AggPubImpAggPubImp {}
}

Im folgenden Beispiel wird CS0433 generiert:

// 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
   }
}

Im folgenden Beispiel wird die Verwendung des Aliasfeatures der /reference-Compileroption zum Beheben des Fehlers CS0433 veranschaulicht.

// 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();
   }
}