'var' という名前のローカル変数は、'var' に別の意味を与えるため、このスコープでは宣言できません。これは、'parent または current/child' スコープで既に使用され、他の何かを示すために使用されています。
変数宣言は、それ以外の場合はスコープ内にある別の宣言を非表示にします。 CS0136 を生成した行で宣言されている変数の名前を変更します。
例
次の例では CS0136 が生成されます。
// CS0136.cs
namespace MyNamespace
{
public class MyClass
{
public static void Main()
{
int i = 0;
{
char i = 'a'; // CS0136, hides int i
}
i++;
}
}
}
コンパイラは、次の例に示すように、変数宣言のテキストの順序に関係なく、このエラーを報告します。
// CS0136.cs
namespace MyNamespace
{
public class MyClass
{
public static void Main()
{
if (true)
{
int i = 1; // CS0136, hides i outside this block
}
int i = 0;
i++;
}
}
}
C# 言語仕様から:
ローカル変数宣言スペースと入れ子になったローカル変数宣言スペースに同じ名前の要素が含まれている場合は、エラーになります。 したがって、入れ子になった宣言空間内では、外側の宣言空間でローカル変数または定数と同じ名前のローカル変数または定数を宣言することはできません。 宣言領域に他方が含まれていない限り、2 つの宣言領域に、同じ名前の要素を含めることができます。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET