Partager via


Expression de fonction (Visual Basic)

Déclare les paramètres et le code qui définissent une expression lambda de fonction.

Function ( [ parameterlist ] ) expression
- or -
Function ( [ parameterlist ] )
  [ statements ]
End Function

Éléments

Terme

Définition

parameterlist

Facultatif. Liste des noms de variables locales représentant les paramètres de cette procédure. Les parenthèses doivent être présentes même quand la liste est vide. Consultez Liste de paramètres (Visual Basic).

expression

Obligatoire. Une expression unique. Le type de l'expression est le type de retour de la fonction.

statements

Obligatoire. Liste d'instructions qui retourne une valeur à l'aide de l'instruction Return. (Consultez Return, instruction (Visual Basic).) Le type de la valeur retournée est le type de retour de la fonction.

Notes

Une expression lambda est une fonction sans nom qui calcule et retourne une valeur. Vous pouvez utiliser une expression lambda partout où vous pouvez utiliser un type délégué, sauf en tant qu'argument à RemoveHandler. Pour plus d'informations sur les délégués et l'utilisation d'expressions lambda avec les délégués, consultez Delegate, instruction et Conversion simplifiée des délégués (Visual Basic).

Syntaxe d'expression lambda

La syntaxe d'une expression lambda ressemble à celle d'une fonction standard. Les différences sont les suivantes :

  • Une expression lambda n'a pas de nom.

  • Les expressions lambda ne peuvent pas avoir modificateurs, tels que Overloads ou Overrides.

  • Les expressions lambda n'utilisent pas de clause As pour désigner le type de retour de la fonction. Au lieu de cela, le type est déduit de la valeur du corps d'une expression lambda à une seule ligne, ou de la valeur de retour d'une expression lambda multiligne. Par exemple, si le corps d'une expression lambda sur une ligne est Where cust.City = "London", son type de retour est Boolean.

  • Le corps d'une expression lambda sur une ligne doit être une expression, pas une instruction. Le corps peut se composer d'un appel à une procédure de fonction, mais pas d'un appel à une sous-procédure.

  • Tous les paramètres doivent posséder des types de données spécifiés ou être tous déduits.

  • Les paramètres facultatifs et Paramarray ne sont pas autorisés.

  • Les paramètres génériques ne sont pas autorisés.

Exemple

Les exemples suivants illustrent deux façons de créer des expressions lambda simples. La première utilise un Dim pour fournir un nom pour la fonction. Pour appeler la fonction, envoyez une valeur pour le paramètre.

Dim add1 = Function(num As Integer) num + 1
' The following line prints 6.
Console.WriteLine(add1(5))

Vous pouvez également déclarer et exécuter simultanément la fonction.

Console.WriteLine((Function(num As Integer) num + 1)(5))

L'exemple suivant est une expression lambda qui incrémente son argument et retourne la valeur. L'exemple montre la syntaxe d'expression lambda sur une ou plusieurs lignes d'une fonction. Pour plus d'exemples, consultez Expressions lambda (Visual Basic).

Dim increment1 = Function(x) x + 1
Dim increment2 = Function(x)
                     Return x + 2
                 End Function

' Write the value 2.
Console.WriteLine(increment1(1))

' Write the value 4.
Console.WriteLine(increment2(2))

Les expressions lambda sont à la base d'un grand nombre d'opérateurs de requête dans LINQ (Language Integrated Query)et peuvent être utilisées explicitement dans les requêtes basées sur une méthode. L'exemple suivant montre une requête LINQ typique, suivie de la traduction de la requête au format de la méthode.

Dim londonCusts = From cust In db.Customers
                       Where cust.City = "London"
                       Select cust

' This query is compiled to the following code:
Dim londonCusts = db.Customers.
                  Where(Function(cust) cust.City = "London").
                  Select(Function(cust) cust)

Pour plus d'informations sur les méthodes de requête, consultez Requêtes (Visual Basic). Pour plus d'informations sur les opérateurs de requête standard, consultez Vue d'ensemble des opérateurs de requête standard.

Voir aussi

Référence

Function, instruction (Visual Basic)

If, opérateur (Visual Basic)

Concepts

Expressions lambda (Visual Basic)

Opérateurs et expressions en Visual Basic

Comparaisons de valeurs (Visual Basic)

Expressions booléennes (Visual Basic)

Conversion simplifiée des délégués (Visual Basic)

Autres ressources

Instructions dans Visual Basic