Share via


Procédures Function (Visual Basic)

Une procédure Function est une série d'instructions Visual Basic délimitées par les instructions Function et End Function. La procédure Function effectue une tâche puis retourne le contrôle au code appelant. Lorsqu'elle retourne le contrôle, elle retourne également une valeur au code appelant.

Chaque fois que la procédure est appelée, ses instructions sont exécutées à partir de la première instruction exécutable située après l'instruction Function jusqu'à la première instruction End Function, Exit Function ou Return rencontrée.

Vous pouvez définir une procédure Function dans un module, une classe ou une structure. La valeur par défaut est Public, ce qui signifie que vous pouvez l'appeler de n'importe où dans une application qui a accès au module, à la classe ou à la structure dans laquelle vous l'avez définie.

Une procédure Function peut accepter des arguments tels que les constantes, les variables ou les expressions qui sont passées à la procédure par le code appelant.

Syntaxe de déclaration

La syntaxe de déclaration d'une procédure Function est la suivante :

[modifiers] Function functionname[(parameterlist)] As returntype

' Statements of the Function procedure.

End Function

Les modificateurs peuvent spécifier un niveau d'accès et des informations relatives à la surcharge, la substitution, le partage et l'occultation. Pour plus d'informations, consultez Function, instruction (Visual Basic).

Vous déclarez chaque paramètre de la même façon que pour Procédures Sub (Visual Basic).

Type de données

Chaque procédure Function possède un type de données, comme n'importe quelle variable. Ce type de données est spécifié par la clause As dans l'instruction Function et il détermine le type de données de la valeur que la fonction retourne au code appelant. Les exemples de déclarations suivants illustrent ce principe.

Function yesterday() As Date
End Function
Function findSqrt(ByVal radicand As Single) As Single
End Function

Pour plus d'informations, consultez « Éléments » dans Function, instruction (Visual Basic).

Retour de valeurs

La valeur qu'une procédure Function retourne au code appelant s'appelle une valeur de retour. La procédure retourne cette valeur selon l'une des deux méthodes suivantes :

  • Elle assigne une valeur à son nom de fonction dans une ou plusieurs instructions de la procédure. Le contrôle ne retourne pas au programme appelant tant qu'une instruction Exit Function ou End Function n'a pas été 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

  • 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

L'assignation de la valeur de retour au nom de la fonction permet à la procédure de conserver le contrôle jusqu'à ce que celui-ci rencontre une instruction Exit Function ou End Function. Vous pouvez ainsi assigner une valeur préliminaire et l'ajuster ultérieurement si nécessaire.

Pour plus d'informations, consultez « Valeur de retour » dans Function, instruction (Visual Basic).

Retour de tableaux

Si la procédure Function retourne un type de données de tableau, vous ne pouvez pas accéder aux éléments individuels du tableau dans la fonction. Si vous essayez néanmoins, le compilateur interprète cette tentative comme un appel récursif à la procédure. L'exemple suivant illustre ce comportement :

Function allOnes(ByVal n As Integer) As Integer()

For i As Integer = 1 To n - 1

' The following statement generates a COMPILER ERROR.

allOnes(i) = 1

Next i

' The following statement generates a COMPILER ERROR.

Return allOnes()

End Function

Dans l'exemple précédent, le compilateur interprète la tentative d'assignation allOnes(i) = 1 comme un appel à allOnes sur le côté gauche d'une instruction d'assignation. Il interprète la tentative Return allOnes() comme un appel sans argument. Les deux instructions génèrent des erreurs du compilateur.

Syntaxe d'appel

Vous appelez une procédure Function en incluant son nom et ses arguments soit à droite d'une instruction d'assignation soit dans une expression. Vous devez fournir les valeurs de tous les arguments qui ne sont pas facultatifs et placer la liste des arguments entre parenthèses. Si aucun argument n'est spécifié, vous pouvez ne pas mettre les parenthèses.

La syntaxe d'appel à une procédure Function est la suivante :

lvalue = functionname[(argumentlist)]

If ((functionname[(argumentlist)] / 3) <= expression) Then

Lorsque vous appelez une procédure Function, vous n'avez pas besoin d'utiliser sa valeur de retour. Si vous ne l'utilisez pas, toutes les actions de la fonction sont exécutées, mais la valeur de retour est ignorée. La méthode MsgBox est souvent appelée de cette manière.

Illustration de déclaration et d'appel

La procédure Function suivante calcule le côté le plus long, ou hypoténuse, d'un triangle rectangle, d'après les valeurs des deux autres côtés.

Function hypotenuse(ByVal side1 As Single, ByVal side2 As Single) As Single
    Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))
End Function

L'exemple suivant montre un appel typique à hypotenuse.

Dim testLength, testHypotenuse As Single
testHypotenuse = hypotenuse(testLength, 10.7)

Fonctions Runtime de Visual Basic

Le runtime de Visual Basic fournit de nombreuses fonctions, situées dans l'espace de noms Microsoft.VisualBasic. Celles-ci incluent des fonctions courantes telles que Beep, MsgBox et StrComp. Vous appelez ces fonctions de la même façon que vos procédures Function.

Voir aussi

Tâches

Comment : créer une procédure qui retourne une valeur (Visual Basic)

Comment : retourner une valeur d'une procédure (Visual Basic)

Comment : appeler une procédure qui retourne une valeur (Visual Basic)

Référence

Function, instruction (Visual Basic)

Concepts

Procédures dans Visual Basic

Procédures Sub (Visual Basic)

Procédures Property (Visual Basic)

Procédures d'opérateur (Visual Basic)

Paramètres et arguments d'une procédure (Visual Basic)