Auf Englisch lesen

Freigeben über


Compilerfehler CS0136

Eine lokale Variable mit dem Namen "Var" kann in diesem Bereich nicht deklariert werden, weil "Var" dadurch eine andere Bedeutung erhalten würde, die bereits in einem übergeordneten oder aktuellen/untergeordneten Bereich in anderer Bedeutung verwendet wird.

Eine Variablendeklaration blendet eine andere Deklaration aus, die andernfalls im Bereich enthalten wäre. Benennen Sie die Variable um, die in der Zeile deklariert ist, durch die CS0136 generiert wurde.

Beispiel

Im folgenden Beispiel wird CS0136 generiert:

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

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.