英語で読む

次の方法で共有


コンパイラ エラー CS0434

NamespaceName2 内の名前空間 NamespaceName1 は、NamespaceName3 内の TypeName1 型と競合します

このエラーは、インポートされた型とインポート済みの入れ子になった名前空間が同じ完全修飾名を持つ場合に発生します。 その名前が参照されると、コンパイラは 2 つを区別することができません。 インポートしたソース コードを変更できる場合は、型または名前空間のいずれかの名前を変更し、両方がアセンブリ内で一意になるようにすることで、エラーを解決できます。

次のコードではエラー CS0434 が生成されます。

例 1

このコードは、同じ完全修飾名を持つ型の最初のコピーを作成します。

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

例 2

このコードは、同じ完全修飾名を持つ型の 2 番目のコピーを作成します。

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

例 3

このコードは、同じ完全修飾名を持つ型を参照します。

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