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 Functionou 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 AsFunction 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 une Exit 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)

Voir aussi