Freigeben über


Compilerfehler CS0434

Der Namespace 'NamespaceName1' in 'NamespaceName2' steht in Konflikt mit dem Typ 'Typname1' in 'Namespacename3'

Dieser Fehler tritt auf, wenn ein importierter Typ und ein importierter geschachtelter Namespace den gleichen vollqualifizierten Namen aufweisen. Wenn auf diesen Namen verwiesen wird, kann der Compiler nicht zwischen den beiden unterscheiden. Wenn Sie den importierten Quellcode ändern können, können Sie den Fehler beheben, indem Sie den Namen entweder des Typs oder des Namespaces ändern, so dass beide innerhalb der Assembly eindeutig sind.

Durch den folgenden Code wird der Fehler CS0434 ausgelöst.

Beispiel 1

Dieser Code erstellt die erste Kopie des Typs mit dem identischen vollqualifizierten Namen.

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

Beispiel 2

Dieser Code erstellt die zweite Kopie des Typs mit dem identischen vollqualifizierten Namen.

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

Beispiel 3

Dieser Code verweist auf den Typ mit dem identischen vollqualifizierten Namen.

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