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

Je passe par un vieux code VB et je rencontre des définitions de fonctions comme celles-ci -

 Private Function ExistingCustomer(Index As Integer, Customer As String) As Integer

 Private Sub cmdCustomerList_Click()

Quelle est la différence?

44
vb6
demandé sur CodeBlue 2012-04-13 17:26:16

8 réponses

La fonction renvoie la valeur, pas Sub. c'est aussi simple que cela.

106
répondu LeleDumbo 2012-04-13 13:27:34

, Une fonction peut également être utilisée dans une expression. Un sous-programme ne peut pas. Les fonctions peuvent prêter à 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 contribue à la séparation des tâches. La fonction prêterait vers la réutilisabilité.

Avec VB6, il existe des règles étranges régissant les parenthèses. S'il n'y a pas de paramètres à un sous-marin, les parenthèses ne sont pas nécessaires (je pense que Visual Studio pourrait supprimer la parenthèse). Une façon de contourner cela est d'ajouter le mot clé "Appel" avant votre sous.

Call CheckIfAccountLocked()

Vs

CheckIfAccountLocked
15
répondu D. Kermott 2014-11-18 16:33:57

En fonction, nous pouvons renvoyer des valeurs en tant que types de données booléens, string et autres données.

Mais sub ne retourne rien. il exécute simplement le code et l'instruction que nous donnons. Ceux - ci sont également 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 click d'un bouton de commande: Sous privé cmd_click ()

Fin sous

4
répondu Uzair Ashraf 2014-08-23 11:17:49

Ce sont les deux sections pour écrire du code mais une fonction doit renvoyer une valeur. Par exemple, si vous aviez un programme dans lequel une procédure mathématique compliquée doit être exécutée plusieurs fois, vous feriez simplement une fonction et auriez le code mathématique compliqué là-dedans et chaque fois que vous devez faire le calcul, vous pouvez simplement appeler la fonction. J'espère que cela a aidé à ne pas savoir si je l'ai bien expliqué.

3
répondu JoshP97 2015-04-30 09:20:17

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

"sous - " peut effectuer une action. "sub" ne renvoie aucune valeur.

Exemple:

Form_Load ()

"function " peut également effectuer une action, mais elle renvoie également une valeur au point à partir duquel elle a été appelée. c'est-à-dire que "les fonctions renvoient une valeur, souvent basée sur une variable"

Exemple:

Val (), FormatPercentage ().

2
répondu Laxmi 2016-08-25 09:43:46

Fonction dans vb

  • , une fonction doit renvoyer une valeur/s
  • syntaxe : fonction privée fun_name(argument / S (facultatif)) comme return_type(entier,chaîne..) valeur de retour fonction de fin
  • fun_name(arguments (optionnel)) est suffisant pour l'appel de fonction

Sous dans vb

  • un sous n'a pas besoin d'être retourné toute valeur/S
  • Syntaxe : sous-sous-Nom privé(argument / S (facultatif))

    Fin sous

  • sub_name(arguments (optionnel) ) est assez pour l'appel de fonction
0
répondu 2014-07-09 06:19:12

Une fonction contient des données et du code. Mais un sous-programme ne contient que du code, mais pas des données.

-1
répondu Henil Mamaniya 2017-02-17 20:38:15
  1. la syntaxe des fonctions sera fonction...Fonction de fin et pour Sub sera Sub...End Sub.
  2. les fonctions peuvent ou non avoir des objets mais sub n'a pas d'objets
  3. les fonctions sont réutilisables où Sub ne
  4. Les fonctions
  5. peuvent renvoyer des valeurs mais ne sont pas
  6. Les fonctions
  7. peuvent avoir un référentiel d'objets mais sub n'a pas
  8. L'Extension des fonctions est .ftq où pour les sous c'est .vba
-1
répondu Rakesh Yadav 2017-04-03 17:00:09