Procédures de fonction (Visual Basic)
Une Function
procédure est une série d’instructions Visual Basic placées entre les instructions et End Function
les Function
instructions. La Function
procédure effectue une tâche, puis retourne le contrôle au code appelant. Lorsqu’il retourne un contrôle, il retourne également une valeur au code appelant.
Chaque fois que la procédure est appelée, ses instructions s’exécutent, en commençant par la première instruction exécutable après l’instruction Function
et se terminant par le premier End Function
, Exit Function
ou Return
l’instruction rencontrée.
Vous pouvez définir une procédure dans un module, une Function
classe ou une structure. C’est Public
par défaut, ce qui signifie que vous pouvez l’appeler n’importe où dans votre application qui a accès au module, à la classe ou à la structure dans laquelle vous l’avez définie.
Une Function
procédure peut prendre des arguments, tels que des constantes, des variables ou des expressions, qui lui sont transmises par le code appelant.
Syntaxe de déclaration
La syntaxe de déclaration d’une Function
procédure est la suivante :
[Modifiers] Function FunctionName [(ParameterList)] As ReturnType
[Statements]
End Function
Les modificateurs peuvent spécifier le niveau d’accès et les informations concernant la surcharge, la substitution, le partage et l’ombre. Pour plus d’informations, consultez l’instruction function.
Vous déclarez chaque paramètre de la même façon que pour les sous-procédures.
Type de données
Chaque Function
procédure a un type de données, tout comme chaque variable. Ce type de données est spécifié par la clause de l’instruction As
Function
et détermine le type de données de la valeur retournée par la fonction au code appelant. Les exemples de déclarations suivants illustrent cela.
Function Yesterday() As Date
End Function
Function FindSqrt(radicand As Single) As Single
End Function
Pour plus d’informations, consultez « Parties » dans l’instruction function.
Retour de valeurs
La valeur qu’une Function
procédure renvoie au code appelant est appelée sa valeur de retour. La procédure retourne cette valeur de l’une des deux manières suivantes :
Il utilise l’instruction
Return
pour spécifier la valeur de retour et retourne immédiatement le contrôle au programme appelant. L'exemple suivant illustre ce comportement.Function FunctionName [(ParameterList)] As ReturnType ' The following statement immediately transfers control back ' to the calling code and returns the value of Expression. Return Expression End Function
Il affecte une valeur à son propre nom de fonction dans une ou plusieurs instructions de la procédure. Le contrôle ne revient pas au programme appelant tant qu’une instruction ou
End Function
uneExit Function
instruction n’est pas exécutée. L'exemple suivant illustre ce comportement.Function FunctionName [(ParameterList)] As ReturnType ' The following statement does not transfer control back to the calling code. FunctionName = Expression ' When control returns to the calling code, Expression is the return value. End Function
L’avantage de l’affectation de la valeur de retour au nom de la fonction est que le contrôle ne revient pas de la procédure tant qu’il n’a pas rencontré une instruction ou End Function
une Exit Function
instruction. Cela vous permet d’affecter une valeur préliminaire et de l’ajuster ultérieurement si nécessaire.
Pour plus d’informations sur le retour de valeurs, consultez Function Statement. Pour plus d’informations sur le retour de tableaux, consultez Tableaux.
Syntaxe d’appel
Vous appelez une Function
procédure en incluant son nom et ses arguments soit sur le côté droit d’une instruction d’affectation, soit dans une expression. Vous devez fournir des valeurs pour tous les arguments qui ne sont pas facultatifs, et vous devez placer la liste d’arguments entre parenthèses. Si aucun argument n’est fourni, vous pouvez éventuellement omettre les parenthèses.
La syntaxe d’un appel à une Function
procédure est la suivante.
lvalue=
Functionname[(
argumentlist)]
If ((
Functionname[(
argumentlist)] / 3) <=
Expression) Then
Lorsque vous appelez une Function
procédure, vous n’avez pas besoin d’utiliser sa valeur de retour. Si ce n’est pas le cas, toutes les actions de la fonction sont effectuées, mais la valeur de retour est ignorée. MsgBox est souvent appelé de cette manière.
Illustration de la déclaration et de l’appel
La procédure suivante Function
calcule le côté le plus long, ou l’hypotenuse, d’un triangle droit, en fonction des valeurs des deux autres côtés.
Function Hypotenuse(side1 As Double, side2 As Double) As Double
Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))
End Function
L’exemple suivant montre un appel classique à hypotenuse
.
Dim testLength, testHypotenuse As Double
testHypotenuse = Hypotenuse(testLength, 10.7)