Partager via


Erreur du compilateur CS0433

Mise à jour : novembre 2007

Message d'erreur

Le type NomType1 existe dans NomType2 et dans NomType3
The type TypeName1 exists in both TypeName2 and TypeName3

Deux assemblys différents référencés dans votre application contiennent les mêmes espace de noms et type, ce qui génère une ambiguïté.

Pour résoudre cette erreur, utilisez la fonctionnalité d'alias de l'option du compilateur /reference (Importer les métadonnées) (Options du compilateur C#) ou ne référencez pas l'un de vos assemblys.

Exemple

Ce code crée la DLL avec la première copie du type ambigu.

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

Ce code crée la DLL avec la deuxième copie du type ambigu.

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

L'exemple suivant génère l'avertissement 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
   }
}

L'exemple suivant montre comment vous pouvez utiliser la fonctionnalité d'alias de l'option du compilateur /reference pour résoudre l'erreur 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();
   }
}