Syntax: „Exit Sub“ oder „Return“ in VB.NET Subroutinen
-
05-07-2019 - |
Frage
Sowohl „Exit Sub“ oder „Return“ scheint das Gleiche zu erreichen - ein Unterprogramm verlassen. Gibt es einen Unterschied, wie sie unter der Decke arbeiten?
Das heißt,
Private Sub exitNow()
Exit Sub
End Sub
oder
Private Sub exitNow()
Return
End Sub
Lösung
Aus dem Dokument:
In einem Sub oder Set Prozedur, die Return-Anweisung entspricht eine Exit Sub oder Exit-Property-Anweisung und Ausdruck muß nicht vorgelegt werden.
Sie sind also die gleichen in diesem Zusammenhang.
Andere Tipps
Ich neige dazu, Return
über Exit Sub
bevorzugen. Denn ab und zu Ihr von Sub
ändern Function
. In diesem Fall Exit Sub
werden könnte, um Exit Function
umgewandelt, aber dies geht davon aus, dass es eine vorherige Zuordnung zu den Funktionsnamen (gleich VB 6) war, die höchstwahrscheinlich nicht der Fall ist. Return
würde diese Situation fangen -., wenn die Methode sollte einen Wert zurückgeben, Return
ohne Argument wird bei der Kompilierung fehlschlagen
Wenn Sie die IL Ausgabe der 2-Anweisungen überprüfen, sind sie gleich. da ‚Rückkehr‘ für ist jedoch gemeint, etwas zurück zu dem Anrufer drückt, so genau genommen, ‚Exit Sub‘ ist besser geeignet für die in einem Sub verwenden.
Es ist die gleiche in diesem Zusammenhang.
Doch aus der Lesbarkeit der Codes Sicht „Exit Sub“ wäre klarer, da das „Return“ zeigt an, dass etwas Wert etwas als Ausgang verwendet wird (was nicht der Fall mit Sub-Routinen ist).
- Zu allererst kommt Verfahren mit Unter, sollten wir wissen, dass wir auf spezifische Verfahren arbeiten, die nicht einen bestimmten Wert mit der Fähigkeit, vorbei an einigen spezifischen Parameter zurückgeben oder sogar jeden Parameter ohne Umweg. Wie zum Beispiel:
- Drucken etwas ().
- Berechnen Sie die Fakultät von Integer-Zahl
CalcFact(X)
. -
Haben einige Prozesse für eine bestimmte Aufgabe.
-
Die Funktion ist ein spezifischer Prozess eine bestimmte Aufgabe zu erreichen programmiert, indem auch einige spezifische Parameter übergeben, und es hat einen gewissen Wert zurückkehren, die verwendet werden können, um die Gesamtaufgabe, wie die Validierung der Benutzernamen und Benutzer zu vervollständigen übergeben.
Kurz Sub Nicht Wert zurück und wir nennen es direkt "Print HelloWorld()"
, während Funktionen tun wie:
-
ValidUsersNameAndPass("Johne","jOhNe13042019")
"Dies könnte einen Booleschen Wert zurück. -
ValidUsersNameAndPass("Johne","jOhNe13042019");
// Dies könnte einen Booleschen Wert zurück.
Zwar gibt es Ausnahmen wie Wache Klauseln ist in den meisten Fällen Ich würde entweder ein Zeichen, dass das Verfahren zu lang ist.
Ich wollte bestätigen, dass sie das gleiche in Lambda-Ausdrücke wirken auch, und sie tun:
Sub test()
Dim a As Action = Sub() Exit Sub
Dim b As Action = Sub() Return
a()
b()
MsgBox("Yes they do!")
End Sub