Errore del compilatore CS0433

Aggiornamento: novembre 2007

Messaggio di errore

Il tipo NomeTipo1 esiste sia in NomeTipo2 che in NomeTipo3.
The type TypeName1 exists in both TypeName2 and TypeName3

Due assembly diversi a cui viene fatto riferimento nell'applicazione contengono lo stesso tipo e spazio dei nomi. Ciò crea ambiguità.

Per correggere l'errore, utilizzare la funzionalità alias dell'opzione del compilatore /reference (importazione di metadati) (opzioni del compilatore C#) oppure non fare riferimento a uno degli assembly.

Esempio

Il codice riportato di seguito genera la DLL con la prima copia del tipo ambiguo.

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

Il codice riportato di seguito genera la DLL con la seconda copia del tipo ambiguo.

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

Il seguente esempio genera l'errore 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
   }
}

Nell'esempio seguente viene illustrato l'utilizzo della funzionalità alias dell'opzione del compilatore /reference per risolvere l'errore 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();
   }
}