Прочитать на английском

Поделиться через


Ошибка компилятора CS0136

Невозможно объявить локальную переменную с именем var в этой области видимости, т. к. она придаст другое значение 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#:

Это ошибка для пространства объявления локальной переменной и вложенного пространства объявления локальной переменной для хранения элементов с тем же именем. Таким образом, в вложенном пространстве объявления невозможно объявить локальную переменную или константу с таким же именем, как локальная переменная или константа в заключающее пространство объявления. Для двух пробелов объявления можно содержать элементы с одинаковым именем, если ни одно пространство объявления не содержит другое.