web-dev-qa-db-fra.com

Quelle est la différence entre Sub et Function dans VB6?

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?

46
CodeBlue

La fonction renvoie la valeur, Sub ne le fait pas. C'est si simple.

107
LeleDumbo

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
18
D. Kermott

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

4
Uzair Ashraf

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é.

3
JoshP97

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 ().

2
Laxmi

fonction en vb

  • une fonction doit retourner une valeur/s
  • Syntaxe: Fonction privée fun_name (argument/s (facultatif)) sous la forme return_type (entier, chaîne ..) valeur de retour fonction finale
  • fun_name (arguments (optionnel)) suffit pour appeler une fonction

sous en vb

  • un sous n'a pas besoin de renvoyer de valeur/s
  • Syntaxe: Private sous sub_name (argument/s (facultatif))

    fin sous

  • nom_sous (arguments (facultatif)) suffit pour l'appel de la fonction
0
user3818752