Share via


Compilerfehler CS0135

'deklaration1' steht im Konflikt mit der Deklaration 'deklaration2'

Der Compiler lässt das Ausblenden von Namen nicht zu, was häufig zu Logikfehlern im Code führt.

Beispiel

Im folgenden Beispiel wird CS0135 generiert:

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

Aus der C#-Sprachspezifikation:

Es ist ein Fehler, wenn ein Bereich zur Deklaration lokaler Variablen und ein geschachtelter Bereich zur Deklaration lokaler Variablen Elemente mit demselben Namen enthalten. Daher ist es innerhalb eines geschachtelten Deklarationsbereichs nicht möglich, eine lokale Variable oder Konstante zu deklarieren, die denselben Namen hat wie eine lokale Variable oder Konstante in einem angrenzenden Deklarationsbereich. Es ist möglich, dass zwei Deklarationsbereiche Elemente mit demselben Namen enthalten, solange keiner der beiden Deklarationsbereiche den anderen enthält.