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

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


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

"объявление1" противоречит объявлению "объявление2"

Компилятор не позволяет скрывать имена, что обычно приводит к логическим ошибкам в коде.

Пример

В следующем примере возникает ошибка CS0135:

// CS0135.cs  
public class MyClass2  
{  
   public static int i = 0;  
  
   public static void Main()  
   {  
      {  
         int i = 4;  
         i++;  
      }  
      i = 0;   // CS0135  
   }  
}  

Из спецификации языка C#:

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