Je traverse un vieux code VB et je rencontre des définitions de fonction comme celles-ci -
Private Function ExistingCustomer(Index As Integer, Customer As String) As Integer
Private Sub cmdCustomerList_Click()
Quelle est la différence?
La fonction renvoie la valeur, Sub ne le fait pas. C'est si simple.
Une fonction peut également être utilisée dans une expression. Un sous-programme ne peut pas .. .. Les fonctions peuvent contribuer à la lisibilité de votre code mieux qu’un sous-programme.
Voici un exemple de la façon dont une fonction peut augmenter la lisibilité:
If AccountIsLocked("JJones") then Msgbox("This account is locked")
cette fonction serait définie quelque part
public function AccountIsLocked(UserId as string) as boolean
dim usr = uow.AccountRepository.UserInfo(UserId)
return usr.locked
end function
Voici le même exemple mais codé avec un sous-programme:
CheckIfAccountLocked("JJones")
et ailleurs ce sous est défini:
public sub CheckIfAccountLocked(UserId)
if uow.AccountRepository.UserInfo(UserId).locked then
msgbox("Account is locked")
end if
end sub
Notez également que la vérification de la valeur est séparée de l'action - cela contribue à la séparation des tâches. La fonction prêterait à la réutilisation.
Avec VB6, il existe quelques règles étranges régissant les parenthèses. S'il n'y a pas de paramètres dans un sous-objet, les parenthèses ne sont pas nécessaires (je pense que Visual Studio peut supprimer la parenthèse). Une solution consiste à ajouter le mot clé "Call" avant votre sous-traitant.
Call CheckIfAccountLocked()
contre
CheckIfAccountLocked
Dans function, nous pouvons renvoyer des valeurs sous forme de booléen, chaîne et autres types de données.
mais sub ne retourne rien ... il exécute simplement le code et les instructions que nous donnons. Ce sont aussi considérés comme des méthodes
Sub est également utilisé dans les événements du contrôle et ces événements ne renvoient aucune valeur.
par exemple, l'événement de clic d'un bouton de commande: Private sub cmd_click ()
fin sous
Ce sont les deux sections pour écrire du code, mais une fonction doit renvoyer une valeur. Par exemple, si vous avez un programme dans lequel une procédure mathématique complexe doit être exécutée un certain nombre de fois, il vous suffit de créer une fonction et d’avoir le code mathématique complexe, et chaque fois que vous devez effectuer le calcul, vous pouvez simplement appeler la fonction. . J'espère que cela n'a pas aidé si je l'ai bien expliqué.
Quelle est la différence entre Sub et Function dans VB6?
" sub " peut effectuer certaines actions . "sub" ne renvoie aucune valeur.
Exemple:
Form_Load ()
" function " peut également exécuter certaines actions, mais renvoie également une valeur au point d'où il a été appelé ..__ c'est-à-dire que "les fonctions renvoient une valeur, souvent basée sur une variable"
Exemple:
Val (), FormatPercentage ().
fonction en vb
sous en vb
Syntaxe: Private sous sub_name (argument/s (facultatif))
fin sous