コンパイラ エラー CS0135
更新 : 2007 年 11 月
エラー メッセージ
'declaration1' は宣言 'declaration2' と競合しています。
コンパイラでは名前を隠ぺいできません。通常は、名前を隠ぺいするとコード内で論理エラーが発生します。
使用例
次の例では CS0135 エラーが生成されます。
// CS0135.cs
public class MyClass2
{
public static int i = 0;
public static void Main()
{
{
int i = 4;
i++;
}
i = 0; // CS0135
}
}
以降は、「C# 言語仕様」のセクション 7.5.2.1 からの抜粋です。
式または宣言子の中で simple-name として指定されている識別子の各使用箇所について、すぐ外側のローカル変数宣言空間 (§CNDJ6nn5us4RjIIAqgBLqQsCAAAACAAAAA4AAABfAFIAZQBmADQANgAxADYAMgAyADEAMwA4AAAA REF _Ref461622138 \r \h 3.3) の中の式または宣言子で simple-name として指定されている同じ識別子はすべて、同じエンティティを示している必要があります。この規則により、特定のブロック、switch ブロック、for ステートメント、foreach ステートメント、using ステートメント、または匿名関数内にある名前は常に同じ意味を持ちます。