コンパイラ エラー CS0434
NamespaceName2 内の名前空間 NamespaceName1 は、NamespaceName3 内の TypeName1 型と競合します
このエラーは、インポートされた型とインポート済みの入れ子になった名前空間が同じ完全修飾名を持つ場合に発生します。 その名前が参照されると、コンパイラは 2 つを区別することができません。 インポートしたソース コードを変更できる場合は、型または名前空間のいずれかの名前を変更し、両方がアセンブリ内で一意になるようにすることで、エラーを解決できます。
次のコードではエラー CS0434 が生成されます。
このコードは、同じ完全修飾名を持つ型の最初のコピーを作成します。
// CS0434_1.cs
// compile with: /t:library
namespace TypeBindConflicts
{
namespace NsImpAggPubImp
{
public class X { }
}
}
このコードは、同じ完全修飾名を持つ型の 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 { }
}
このコードは、同じ完全修飾名を持つ型を参照します。
// CS0434.cs
// compile with: /r:cs0434_1.dll /r:cs0434_2.dll
using TypeBindConflicts;
public class Test
{
public TypeBindConflicts.NsImpAggPubImp.X n2 = null; // CS0434
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。