Wie kann ich Text in einer Variable in C# speichern, ohne ihn zu entfernen, wenn ich zurück in die Main Methode komme?
Hey, ich habe vor ein paar Tagen angefangen C# zu lernen und versuche nun einige einfache Programme für Anfänger zu programmieren. Der Taschenrechner hat schon funktioniert jedoch scheitert es jetzt bei einem Schreibprogramm, was den Text temporär in einer Variable der Konsole speichern soll und wieder aufrufbar ist.
Am Anfang meine Codes, habe ich 4 String Variablen als Speicherplatz festgelegt. Wie diese aussehen, sieht man auf dem Bild.
Nun muss der Nutzer angeben, ob er einen neuen Text speichern oder ein vorhandenes Dokument öffnen will. Will er ein neues speichern wird mit Hilfe einer If-Abfrage geschaut, welche von den 4 Variablen noch leer ist.
...darunter sind mit "else if" noch die anderen Speicherplätze festgelegt.
Nach einer Eingabe wird der Text in dem String gespeichert und man gelangt zurück zur Main Methode, wo dann allerdings wieder das, was in die Variable eingetragen wurde gelöscht wird, da ich den Variablen ja einen Startwert zuweisen musste. (sieht man auf dem Bild) ich kann die variablen auch nicht später der Eingabe direkt zuweisen, da die Konsole erst überprüfen muss, welche Variable noch frei ist.
Ich hoffe es ist verständlich, was mein Problem ist und jemand kann mir weiterhelfen.
Vielen Dank schon mal im Voraus!
3 Antworten
Da fehlt nun der Teil, in dem Du selber dafür sorgst, dass space1 wieder gelöscht wird. Belege space1 lieber mit null statt mit einem Leerzeichenstring,
Aber: Du gehst nicht zurück zu main, sondern rufst main selber auf, erstellst praktisch eine neue Laufinstanz dieser Funktion. Das macht man NIE!!! Zurück geht man mit einem return. Aber wenn Du es so unsauber/dreckig machen willst, dann musst Du die Variablen, die erhalten bleiben sollen, außerhalb von main oder statisch definieren.
Gewöhne dir das gar nicht erst an. suche Dir unbedingt Hilfe, die Dir wenigstens die grundlegenden Strukturen und Abläufe lehren kann. So, wie Du das da versuchst, ist es, als ob Du ein Auto bauen und erst mal genug Fische dafür fangen willst.
wie kann ich denn zu Main returnen? wenn ich return eingebe schließt sich das Programm
Du bist schon in main, nehme ich mal an. Du zeigst ja nur Fetzen. Mit return verlässt Du main dann. Es ist eben ein RETURN. Bitte suche Dir wirklich jemanden, der Dir wenigstens die MINIMALEN GRUNDBEGRIFFE beibringt. Und nimm eine Schleife, wenn Du da wieder an den Anfang willst.
Du solltest es mit einer großen Schleife um alles versuchen statt in die Rekursion zu gehen ;)
Und im allgemeinen macht dein Vorgehen wenig Sinn. Ein Array wäre viel leicher, dann brauchst du nicht den gleichen Code 4 mal schreiben
Eine Variable ist nur innerhalb ihres Scopes (der Bereich zwischen zwei geschweiften Klammern) gültig. Am Ende ihres Scopes wird sie gelöscht. D.h. wenn du in der Main-Funktion eine Variable definierst, wird sie am Ende der Main-Funktion zerstört. Wenn du sie innerhalb einer If-/Else-Verzweigung definierst, wird sie am Ende der Verzweigung zerstört. Wenn sie am Ende der Main-Funktion noch vorhanden bleiben soll, musst du sie außerhalb des Main-Bereichs definieren, z.B. als globale Variable oder als Klassenmember.
okay, wusste ich nicht, bin wie gesagt noch neu ;) doch wie definiere ich sie außerhalb von main, sodass ich sie da in main weiterhin verwenden kann?