英語で読む

次の方法で共有


コンパイラ エラー CS0136

ローカルの変数 'var' をこのスコープで宣言することはできません。これは、'parent or current/child' スコープで別の意味を持つ 'var' の意味が変更されるのを避けるためです。

変数宣言が、スコープ内にある別の宣言を隠しています。 CS0136 が発生した行で宣言されている変数の名前を変更します。

次の例では CS0136 が生成されます。

C#
// CS0136.cs  
namespace MyNamespace  
{  
   public class MyClass  
   {  
      public static void Main()  
      {  
         int i = 0;  
         {  
            char i = 'a';   // CS0136, hides int i  
         }  
         i++;  
      }  
   }  
}  

C# 言語仕様から:

ローカル変数宣言領域と入れ子になったローカル変数宣言領域が同じ名前の要素を含むエラーです。 したがって、入れ子になった宣言領域内では、ローカル変数または定数を、外側の宣言領域内のローカル変数または定数と同じ名前で宣言することはできません。 宣言領域に他方が含まれていない限り、2 つの宣言領域に、同じ名前の要素を含めることができます。