Ich erstelle eine Konsolenanwendung und habe ein "Menü", in das der Benutzer Informationen eingeben kann, um ein neues Personenobjekt zu erstellen. Das Folgende ist in einer Methode enthalten.
Write("Please enter the first name: ", false);
string fName = Console.ReadLine().ToUpper();
Write("Please enter the middle initial: ", false);
string mInitial = Console.ReadLine().ToUpper();
Write("Please enter the last name: ", false);
string lName = Console.ReadLine().ToUpper();
wie so. Ich möchte, dass der Benutzer die Methode jederzeit beenden kann, wenn er entscheidet, dass er keine neue Person erstellen möchte. Daher möchte ich eine neue Methode namens "CheckExit" erstellen. Wenn sie "EXIT" eingeben, bleibt die Methode "CreatePerson" übrig. Ich möchte also, dass der "CheckExit" eine Rückgabe zurückgibt. Andernfalls muss ich nach jeder Eingabe eine "if" -Anweisung hinzufügen, und das wird unübersichtlich.
Ist das möglich? Hat return einen Rückgabetyp? Was wäre der richtige Weg, dies zu tun?
c#
console
return
return-type
Arkyris
quelle
quelle
throw exception
in der Methode undreturn
in der entsprechendencatch
Antworten:
return
ist kein Typ, den Sie zurückgeben können, sondern ein Schlüsselwort für die Rückgabe eines Ergebnisses. Leider ist das, was Sie versuchen, nicht möglich. Sie können Ihren Code jedoch viel lesbarer und erweiterbarer machen, indem Sie eine Reihe von Abfragen verwenden und die Ergebnisse für jede innerhalb einer Schleife abrufen. Dies hat den Bonuseffekt, dass problemlos weitere Abfragen hinzugefügt werden können.quelle
Sie können eine Methode zum Lesen von der Konsole erstellen, um diesen Prozess zu automatisieren
Dann würde Ihr Code folgendermaßen aussehen:
quelle
throw new Exception()
und fängt. Es gibt auch eine OperationCanceledException im Framework, deren Name möglicherweise zu dem passt, was Sie versuchen, und dessen Verwendung sinnvoll sein könnte. Normalerweise werfen wir verschiedene Ausnahmetypen aus, damit wir unterscheiden können, ob einige und nicht andere abgefangen werden. Im Wesentlichen besteht die einzige Möglichkeit für eine Untermethode, eine äußere Methode zurückzugeben, darin, dass die Untermethode wirft, die äußere Methode keine Rückgaben abfängt und dann steuert zu der Methode über dem äußeren / a "return return"Rückgabeanweisungen werden verwendet, um einen Wert von einer Methode mit einem Rückgabetyp zurückzugeben. Wenn Sie eine Methode mit void als Rückgabetyp schreiben, können Sie die Methode mit beenden
return;
.Beispiel: Die folgende Methode verwendet eine Zeichenfolge als Rückgabetyp.
Wenn Sie eine Methode schreiben, die das Objekt erstellt und an die aufrufende Methode zurückgibt, ist der Rückgabetyp die Person (sofern Sie nicht beabsichtigen, etwas anderes zu tun). Wenn Sie die Benutzereingaben überprüfen und entscheiden, keine Person zu erstellen, können Sie verwenden
return null;
.Und Sie können diese Methode im Main verwenden,
quelle
CreatePerson
sofort verlassen.Die einzige Möglichkeit ist die Verwendung,
return
wenn Sie die Methode beenden möchten. Sie können Ihren Code jedoch folgendermaßen kürzen:quelle