Deklarationsregelnclass C { static int a = 0, b = 1; static void Main() { int c; if (a == 0) { int a; // Fehler 1 int b; int d; ... } else { int d; ... } for (int c = 0; c < 3; c++) {...} // Fehler 2 for (int d = 0; d < 3; d++) {...} } } Fehler 1: Es ist zwar prinzipiell erlaubt, in einer Methode eine lokale Variable a zu deklarieren, die denselben Namen hat wie das Feld a der Klasse. Wenn aber das Feld bereits vor der Deklaration der lokalen Variablen in der Methode benutzt wurde (wie das hier der Fall ist), ist der Name a in dieser Methode bereits mit dem Feld a verbunden. Daher ist es nicht mehr erlaubt, eine lokale Variable namens a zu deklarieren. Fehler 2: Die Variable c wurde bereits auf äußerer Ebene in der Methode Main deklariert. Daher ist eine nochmalige Deklaration in der for-Schleife nicht mehr erlaubt. Die drei Deklarationen von d im then-Zweig, else-Zweig und in der for-Schleife stören hingegen nicht, weil sie in disjunkten Deklarationsbereichen deklariert wurden. |
||