Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine lokale Variable mit dem Namen 'var' kann in diesem Bereich nicht deklariert werden, da sie eine andere Bedeutung für "var" hat, die bereits in einem Bereich "übergeordnetes oder aktuelles/untergeordnetes Element" verwendet wird, um etwas anderes anzugeben.
Eine Variabledeklaration blendet eine andere Deklaration aus, die andernfalls im Bereich enthalten wäre. Benennen Sie die Variable um, die in der Zeile deklariert wird, die CS0136 generiert hat.
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++;
}
}
}
Der Compiler meldet diesen Fehler unabhängig von der Textreihenfolge der Variablendeklarationen, wie im folgenden Beispiel gezeigt:
// CS0136.cs
namespace MyNamespace
{
public class MyClass
{
public static void Main()
{
if (true)
{
int i = 1; // CS0136, hides i outside this block
}
int i = 0;
i++;
}
}
}
Aus der C#-Sprachspezifikation:
Es handelt sich um einen Fehler für einen lokalen Variablendeklarationsbereich und einen geschachtelten lokalen Variablendeklarationsbereich, der Elemente mit demselben Namen enthält. Daher ist es innerhalb eines geschachtelten Deklarationsbereichs nicht möglich, eine lokale Variable oder Konstante mit demselben Namen wie eine lokale Variable oder Konstante in einem eingeschlossenen Deklarationsbereich zu deklarieren. Es ist möglich, dass zwei Deklarationsbereiche Elemente mit demselben Namen enthalten, solange keiner der beiden Deklarationsbereiche den anderen enthält.