"Exit Sub" ou "Return" semblent accomplir la même chose - quitter un sous-programme. Y a-t-il une différence dans la façon dont ils fonctionnent sous les couvertures?
C'est,
Private Sub exitNow()
Exit Sub
End Sub
ou
Private Sub exitNow()
Return
End Sub
Du doc:
Dans une procédure Sub ou Set, l'instruction Return est équivalente à une instruction Exit Sub ou Exit Property et l'expression ne doit pas être fournie.
Ils sont donc les mêmes dans ce contexte.
J'ai tendance à préférer Return
à Exit Sub
. Parce que de temps en temps, vous passez de Sub
à Function
. Dans ce cas Exit Sub
pourrait être converti en Exit Function
, mais cela suppose qu'il y avait une affectation précédente au nom de la fonction (similaire VB 6), ce qui ne s'est probablement pas produit. Return
permettrait de résoudre cette situation - si la méthode doit renvoyer une valeur, Return
sans argument échouera au moment de la compilation.
Si vous inspectez la sortie IL des 2 instructions, ce sont les mêmes. Cependant, étant donné que "retour" est destiné à renvoyer quelque chose à l'appelant, donc à proprement parler, "Quitter Sub" est plus approprié pour une utilisation dans un Sub.
Ils sont les mêmes dans ce contexte.
Cependant, du point de vue de la lisibilité du code, "Exit Sub" serait plus clair car le "Return" indique que quelque chose est utilisé comme sortie (ce qui n'est pas le cas avec les sous-routines).
CalcFact(X)
.Effectuez certains processus pour une tâche spécifique.
La fonction est un processus spécifique programmé pour réaliser une tâche spécifique en passant également certains paramètres spécifiques, et elle doit renvoyer une valeur qui peut être utilisée pour terminer la tâche globale, comme la validation du nom d'utilisateur et la passe utilisateur.
En bref Sub ne renvoie pas de valeur et nous l'appelons directement "Print HelloWorld()"
, alors que les fonctions font comme:
ValidUsersNameAndPass("Johne","jOhNe13042019")
'Cela pourrait retourner une valeur booléenne.ValidUsersNameAndPass("Johne","jOhNe13042019");
// Cela pourrait retourner une valeur booléenne.