Laden...

Goto aus Funktion heraus?! "Programm-Neustart"

Erstellt von CarnifeX vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.407 Views
Thema geschlossen
C
CarnifeX Themenstarter:in
48 Beiträge seit 2015
vor 8 Jahren
Goto aus Funktion heraus?! "Programm-Neustart"

Hey Leute,

Ich habe eine Frage.
Ich habe ein Programm geschrieben dass schon relativ groß und komplex ist. In einer meiner Funktionen frage ich den User ob er eine bestimmte Einstellung vornehmen möchte, ob er alles so lassen möchte und ob er das Programm Neustarten will.

Ich habe ein Problem mit dem Neustarten.
Da ich innerhalb einer Funktion bin kann ich nicht mit goto in meine Main-Methode springen und somit das Programm von neu starten lassen. Wie ist es mir also Möglich innerhalb meiner Funktion das Programm neu zu starten oder in meine Mainmethode zu springen??

switch (exposeOrnoteingabe.Key)
                {
                    case ConsoleKey.J:
                        exposeZähler++;
                        break;
                    case ConsoleKey.N:
                        break;
                    case ConsoleKey.Escape:
                        
                  ----------> ??????? <----------

                    default:
                        Console.WriteLine("Ungültige Eingabe");
                        goto erneut;

Danke im Voraus 😃

3.003 Beiträge seit 2006
vor 8 Jahren

Das hat ein bisschen was von einem Autounfall....furchtbar, aber nicht hinsehen ist auch schwer. 😉

Du hast, denke ich, ein sehr grundlegendes Verständnisproblem mit der objektorientierten Programmierung. Es gibt keinen "Neustart". oder Goto-Marker im Sinn der Goto-Anweisung in BASIC.

Wenn ein Consoleprogramm nicht beendet sein soll, bevor der User nicht irgendwas bestimmtes gemacht hat...

(Code wird nicht funktionieren, es geht auch nur um die Struktur)


ConsoleKey usereingabe = null;
while(usereingabe != ConsoleKey.F10)
{
    showMenu();
    usereingabe = Console.ReadKey();
    DoSomething(input);
}

Aber das sind sehr, sehr frühe Grundlagen, mit denen du hier auf mycsharp nur begrenzt Hilfe bekommen wirst.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

5.657 Beiträge seit 2006
vor 8 Jahren

Hi CarnifeX,

im Prinzip hat LaTino alles dazu gesagt, und die Diskussion, ob und warum man goto verwenden sollte, ist hier schon des öfteren geführt worden.

Da es hier um die absoluten Grundlagen der Programmierung geht (Schleifen!), verweise ich mal auf [FAQ] Wie finde ich den Einstieg in C#?.

Christian

Weeks of programming can save you hours of planning

Thema geschlossen