Compilerfehler CS0136
Aktualisiert: November 2007
Fehlermeldung
Eine lokale Variable mit dem Namen "var" kann in diesem Bereich nicht deklariert werden, weil dadurch "var" eine andere Bedeutung erhalten würde, was bereits im Bereich "übergeordneter oder aktueller/untergeordneter Bereich" in anderer Bedeutung verwendet wird.
A local variable named 'var' cannot be declared in this scope because it would give a different meaning to 'var', which is already used in a 'parent or current/child' scope to denote something else
Eine Variablendeklaration blendet eine Deklaration aus, die anderenfalls 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#-Programmiersprachenspezifikation, Abschnitt 7.5.2.1:
Für jedes Auftreten eines bestimmten Bezeichners als einfacher Name in einem Ausdruck oder Deklarator, innerhalb des lokalen Variablendeklarationsabschnitts (§CNDJ6nn5us4RjIIAqgBLqQsCAAAACAAAAA4AAABfAFIAZQBmADQANgAxADYAMgAyADEAMwA4AAAA REF _Ref461622138 \r \h 3.3), der dieses Auftreten unmittelbar einschließt, muss jedes andere Auftreten desselben Bezeichners vorhandene Bezeichner als simple-name in einem Ausdruck oder Deklarator auf dieselbe Entität verweisen. Mit dieser Regel wird sichergestellt, dass die Bedeutung eines Namens innerhalb eines Blocks, Schalterblocks, einer for-, foreach- oder using-Anweisung oder einer anonymen Funktion gleich bleibt.