Wie man eine Methode beendet, ohne das Programm zu beenden?
Ich bin noch ziemlich neu in C# und bin mit eine schwierige Zeit immer verwendet, um es im Vergleich zu C/CPP.
Wie beenden Sie eine Funktion in C# ohne das Programm zu beenden, wie dies funktionieren würde?
if (textBox1.Text == "" || textBox1.Text == String.Empty || textBox1.TextLength == 0)
textBox3.Text += "[-] Listbox is Empty!!!!\r\n";
System.Environment.Exit(0);
Diese wird nicht zulassen, Rückgabetypen, und wenn allein gelassen, wird es so weiter gehen durch die Funktion unstopped. Was unerwünscht ist.
Kommentar zu dem Problem
BTW, Sie heißen "Methoden", nicht "funktioniert" in diesen Tagen.
Huh??? C/C++ hat
return;
für void
- Funktionen... @Johannes ich habe die Programmierung in C# und anderen OOP-Sprachen für eine gute Zeit und ich nenne Sie immer noch Funktionen. (und ich bin erst 19!)
@Johannes, eine Methode, zu mir, bedeutet das in einem Beispiel. Eine Funktion kann auf Argumente, unabhängig davon, ob oder nicht, es ist statisch. Eine Methode ist eine sub-Fall von Funktionen, die auf eine Instanz, wo es die Instanz das erste argument (implizit oder explizit, je nach Sprache).
@Nathan: ich bevorzuge "die Instanz-Methode" und "statische Methode" oder "Methode der Klasse". Funktionen sind eine nicht-OO-Konzept, und bezieht sich nicht auf das Konzept der a-Klasse.
InformationsquelleAutor der Frage Nightforce2 | 2010-07-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es gibt zwei Möglichkeiten zum beenden einer Methode, die früher (ohne beenden des Programms):
return
Stichwort.Ausnahmen sollten nur verwendet werden, für außergewöhnliche Umstände - wenn die Methode nicht weiter und kann es nicht zurückgeben, einen vernünftigen Wert, dass würde Sinn machen für den Anrufer. In der Regel aber Sie sollten nur wiederkommen, wenn Sie fertig sind.
Wenn Ihr Methode gibt void zurück, dann können Sie schreiben zurück, ohne einen Wert:
Speziell über den code:
Zudem sollten Sie die geschweiften Klammern, die beim schreiben einer if-Anweisung, so dass es klar ist, die Anweisungen im Rumpf der if-Anweisung:
Wenn Sie mit .NET 4 gibt es eine nützliche Methode, die je nach Ihren Anforderungen möchten Sie vielleicht zu prüfen, mit hier: String.IsNullOrWhitespace.
- Umgebung.Newline
statt"\r\n"
.InformationsquelleAutor der Antwort Mark Byers
Neben Mark ' s Antwort, die Sie auch brauchen, um bewusst sein, der Umfang, die (wie in C/C++) wird durch die Angabe von geschweiften Klammern. Also:
immer wieder an diesem Punkt. Allerdings:
wird nur zurück, wenn es geht in die
if
- Anweisung.InformationsquelleAutor der Antwort Smashery
Wenn die Funktion eine leere, die Beendigung der Funktion wird
return
. Andernfalls müssen Sie zu tun eine explizitereturn someValue
. Wie Mark bereits erwähnt, können Sie auchthrow
eine Ausnahme. Was ist der hintergrund deiner Frage? Sie haben einen größeren code-Beispiel, mit dem Sie zu zeigen Ihnen einige Möglichkeiten, um die Funktion zu verlassen?InformationsquelleAutor der Antwort
@John, Earlz und Nathan. Wie ich es gelernt habe an der uni ist: Funktionen, die Werte zurückgeben, Methoden nicht. In einigen Sprachen die syntax ist/war eigentlich anders. Beispiel (keine spezielle Sprache):
Meisten Sprachen verwenden nun die gleiche syntax für beide Versionen, mit void als Rückgabetyp hat, zu sagen gibt es eigentlich nicht zurück geben. Ich nehme an, es ist, weil die syntax ist konsistenter und einfacher Wechsel von Methode Funktion und Umgekehrt.
InformationsquelleAutor der Antwort Stefan
Ich würde
return null;
zu zeigen, dass es keine Daten zurückgegeben werdenInformationsquelleAutor der Antwort beaumondo
Das grundlegende problem hier ist, dass Sie irrtümlich
System.Environment.Exit
fürreturn
.InformationsquelleAutor der Antwort Loren Pechtel