Lire en anglais

Partager via


Erreur du compilateur CS0434

L’espace de noms NamespaceName1 dans NamespaceName2est en conflit avec le type TypeName1 dans NamespaceName3

Cette erreur se produit quand un type et un espace de noms imbriqué importés ont le même nom qualifié complet. Quand ce nom est référencé, le compilateur ne peut pas faire la distinction entre les deux. Si vous pouvez modifier le code source importé, vous pouvez résoudre l’erreur en modifiant le nom du type ou de l’espace de noms de manière à ce qu’ils soient uniques au sein de l’assembly.

Le code suivant génère l’erreur CS0434.

Exemple 1

Ce code crée la première copie du type avec le nom qualifié complet identique.

// CS0434_1.cs  
// compile with: /t:library  
namespace TypeBindConflicts
{  
    namespace NsImpAggPubImp
    {  
        public class X { }  
    }  
}  

Exemple 2

Ce code crée la deuxième copie du type avec le nom qualifié complet identique.

// CS0434_2.cs  
// compile with: /t:library  
namespace TypeBindConflicts {  
    // Conflicts with another import (import2.cs).  
    public class NsImpAggPubImp { }  
    // Try this instead:  
    // public class UniqueClassName { }  
}  

Exemple 3

Ce code fait référence au type avec le nom qualifié complet identique.

// CS0434.cs  
// compile with: /r:cs0434_1.dll /r:cs0434_2.dll  
using TypeBindConflicts;  
public class Test
{  
    public TypeBindConflicts.NsImpAggPubImp.X n2 = null; // CS0434  
}