En Visual Basic, il existe deux types principaux de procédures : Sub et Function. La principale différence réside dans le fait que Sub ne retourne pas de valeur, tandis que Function retourne toujours une valeur d'un type donné.
Sub est utilisée pour exécuter des actions (par exemple, modifier un état, afficher à l'écran, travailler avec des fichiers) lorsque le résultat de l'exécution n'a pas besoin d'être retourné.
Function est utilisée lorsque vous devez retourner une valeur quelconque (par exemple, des calculs, obtenir un résultat logique).
Exemple :
Sub ShowMessage(ByVal message As String) MsgBox(message) End Sub Function Square(ByVal x As Integer) As Integer Square = x * x End Function ' Utilisation : ShowMessage("Hello!") Dim result As Integer result = Square(5) ' result = 25
Quelle est la différence entre une procédure Sub et une Function dans VB6, et peut-on utiliser l'opérateur Return à l'intérieur d'une Sub ?
Réponse correcte : Dans VB6, l'opérateur Return est utilisé uniquement dans Function. Dans Sub, vous pouvez utiliser Exit Sub pour sortir de la procédure, mais vous ne pouvez pas utiliser Return avec une valeur. Beaucoup confondent Return et Exit, mais ils remplissent des tâches différentes.
Sub ExampleSub() ' Return ' Erreur : pas possible dans Sub Exit Sub ' Correct End Sub Function ExampleFunction() As Integer ExampleFunction = 5 ' ou ' Return 5 ' Autorisé dans VB.NET End Function
Histoire
Dans un projet, l'un des développeurs a utilisé Sub à la place de Function, oubliant qu'il fallait retourner une valeur. En conséquence, la valeur calculée n'était sauvegardée nulle part, la logique a échoué, les tests ont échoué.
Histoire
Dans une grande application Windows Forms, Sub a été utilisé pour valider les valeurs. Les données devaient changer en fonction du résultat, mais Sub ne pouvait pas retourner une valeur booléenne. En raison de cela, la validation n'a pas fonctionné, des erreurs de calculs sont survenues.
Histoire
Un novice a essayé d'utiliser l'opérateur Return à l'intérieur de Sub, comme dans d'autres langages de programmation, ce qui a conduit à ce que l'application ne puisse pas se compiler. Ils ont perdu plusieurs heures à chercher la raison, jusqu'à ce qu'ils se rappellent que dans Sub, on utilise Exit Sub, et Return — uniquement dans Function.