Sdílet prostřednictvím


Compilerfehler CS0135

Aktualisiert: November 2007

Fehlermeldung

"Deklaration1" verursacht einen Konflikt mit der Deklaration "Deklaration2".
'declaration1' conflicts with the declaration 'declaration2'

Der Compiler lässt das Ausblenden von Namen nicht zu, da dadurch normalerweise logische Fehler im Code verursacht werden.

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#-Programmiersprachenspezifikation, Abschnitt 7.5.2.1:

Für jedes Auftreten eines bestimmten Bezeichners als einfacher Name (simple-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.