ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
464
464
EMPFEHLEN
-
Kann mir bitte einer erklären warum ich "test" nach der Schleife nicht neu deklarieren darf ?
Der Compiler meckert :
C:\Dokumente und Einstellungen\ferdinat\Eigene Dateien\Visual Studio Projects\TopoCrawler\TopoCrawler\Test.cs(28): Der Name 'test' besteht nicht in der Klasse oder dem Namespace 'TopoCrawler.Test'
C:\Dokumente und Einstellungen\ferdinat\Eigene Dateien\Visual Studio Projects\TopoCrawler\TopoCrawler\Test.cs(28): Eine lokale Variable 'test' kann in diesem Gültigkeitsbereich nicht deklariert werden, weil es 'test' eine andere Bedeutung geben würde, die bereits in einem 'Untergeordnet'-Gültigkeitsbereich verwendet wurde, um auf etwas anderes hinzudeuten.
csharp Code:
[LEFT]- public void doNothing() {
- for (int i=0; i<6; ++i) {
- int test = i;
- }
- int test = 5;
- }
Der Gültigkeitsbereich von test sollte sich doch nur auf innerhalb der Schleife beziehen.
Danke
Grüße SpeedyHinter dir.... ein dreiköpfiger Affe!
-
Dem Konstrukt nach sollte es aber gehen. Poste doch mal das richtige Snipped.
Was aber absoluter Nonsens ist, Variablen innerhalb von wieder kehrenden Durchläufen zu deklarieren.
Da wird jedes mal ein neues Objekt angelegt, ergo speicher verschwendet.
Deklarier die Hilfsvariablen außerhalb und initialisier sie dann innerhalb.
Denn dann wird immer wieder der gleiche Speicherbereich verwendet.
MfG,
cosmoMfG,
Christian
Wer sein Problem definiert, hat es schon halb gelöst!
Bitte markiert eure Themen als erledigt. Sonst macht so ein Forum als Nachschlagewerk keinen Sinn.
The Code Project! - C# Programming | C# / VB.NET Pendants
Regeln + Netiquette
Liebe FIAEs, verlasst euch nicht auf das was in der Berufsschule "vermittelt" wird
und vor allem nicht auf das, was euch die IHK dazu erzählt!
Die haben so viel Ahnung von dem Gewerk, wie der Bundestag vom Haushalt...
-
Das ist der CodeSnippet wie ich ihn zum Testen eingegeben habe:
csharp Code:
[LEFT]- class Test {
- [STAThread]
- static void Main (string[] args) {
- }
- public void doNothing() {
- for (int i=0; i<6; ++i) {
- int test = i;
- }
- int test = 5;
- }
- }
Der OriginalCode wäre hier viel zu lang. Aber die Fehlermeldung ist ja zum Glück reproduzierbar.
Ich benutze VS 2003, liegt da vielleicht ein IDE bzw. Compiler Fehler vor ?
Grüße
Speedy
P.S.: Daß diese Deklaration Schwachfug ist wußte ich schon, trotzdem Danke für den Hinweis. Ich bin halt eher zufällig drübergestolpert als ich eben jenen Codepart am überarbeiten war.Hinter dir.... ein dreiköpfiger Affe!
-
Wieso macht mir der Editor hier immer den Csharpcode kaputt indem er dieses LEFT einfügt ?
Hat jemand von euch auch das Problem ?Hinter dir.... ein dreiköpfiger Affe!
-
Dieser "Fehler" ist auch ganz klar. Variablen-Deklarationen werden vor allem anderen beachtet. Daher ist es so, dass der Gültigkeit von test nicht erst nach der Schleife beginnt, sondern test innerhalb der gesamten Methode Gültigkeit hat. Richtigerweise sollte der Debugger also bei der Verwendung innerhalb der for-Schleife meckern.
Daher Variablen-Deklarationen IMMER an den Anfang schreiben, damit man diese auch schön im ersten Blickfeld hat.
-
Aha ....
Super .. Danke für die Antwort.
Ich dachte mir schon fast daß ich zu prozedural überlegt hatte.
Grüße
SpeedkillHinter dir.... ein dreiköpfiger Affe!
-
Ja hast du, aber kommt in den besten Familien mal vor
Ähnliche Themen
-
Variablen Gültigkeit
Von 5Rad im Forum .NET Application und Service DesignAntworten: 4Letzter Beitrag: 02.04.11, 23:32 -
Klassen und Gültigkeit von Variablen
Von dadom110 im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 06.11.09, 22:06 -
Gültigkeit von Variablen
Von fr3akone im Forum PHPAntworten: 3Letzter Beitrag: 08.05.05, 06:41 -
Variablen Gültigkeit
Von mahosand im Forum PHPAntworten: 1Letzter Beitrag: 20.10.04, 17:16 -
Gültigkeit von Sessions?
Von Ruediger im Forum PHPAntworten: 1Letzter Beitrag: 26.07.02, 17:00





Zitieren
Login





