Function – výraz (Visual Basic)

Deklaruje parametry a kód, které definují výraz lambda funkce.

Syntaxe

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

Součástky

Pojem definice
parameterlist Nepovinné. Seznam názvů místních proměnných, které představují parametry tohoto postupu. Závorky musí být přítomné, i když je seznam prázdný. Viz seznam parametrů.
expression Povinný: Jeden výraz. Typ výrazu je návratový typ funkce.
statements Povinný: Seznam příkazů, které vrací hodnotu pomocí Return příkazu. (Viz Return – příkaz.) Typ vrácené hodnoty je návratový typ funkce.

Poznámky

Výraz lambda je funkce bez názvu, který vypočítá a vrátí hodnotu. Výraz lambda můžete použít všude, kde můžete použít typ delegáta, s výjimkou argumentu RemoveHandlerpro . Další informace o delegátech a použití výrazů lambda s delegáty naleznete v tématu Příkaz delegáta a Uvolněný převod delegáta.

Syntaxe výrazu lambda

Syntaxe výrazu lambda se podobá syntaxi standardní funkce. Rozdíly jsou následující:

  • Výraz lambda nemá název.

  • Výrazy lambda nemohou obsahovat modifikátory, například Overloads nebo Overrides.

  • Výrazy lambda nepoužívají As klauzuli k určení návratového typu funkce. Místo toho je typ odvozen z hodnoty, na kterou se tělo výrazu lambda s jedním řádkem vyhodnotí nebo návratovou hodnotu výrazu lambda s více řádky. Pokud je například text výrazu Where cust.City = "London"lambda s jedním řádkem , jeho návratový typ je Boolean.

  • Text výrazu lambda s jedním řádkem musí být výraz, nikoli příkaz. Tělo se může skládat z volání procedury funkce, ale ne volání dílčí procedury.

  • Buď všechny parametry musí mít zadané datové typy, nebo všechny musí být odvozeny.

  • Volitelné parametry a parametry Paramarray nejsou povoleny.

  • Obecné parametry nejsou povoleny.

Příklad 1

Následující příklady ukazují dva způsoby vytvoření jednoduchých výrazů lambda. První použije Dim k zadání názvu funkce. Pokud chcete volat funkci, odešlete hodnotu parametru.

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

Příklad 2

Alternativně můžete funkci deklarovat a spouštět současně.

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

Příklad 3

Následuje příklad výrazu lambda, který zvýší jeho argument a vrátí hodnotu. Příklad ukazuje syntaxi jednořádkového i víceřádkového výrazu lambda pro funkci. Další příklady najdete v tématu Výrazy lambda.

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))

Příklad 4

Výrazy lambda tvoří základ mnoha operátorů dotazu v linQ (Language-Integrated Query) a lze je použít explicitně v dotazech založených na metodách. Následující příklad ukazuje typický dotaz LINQ následovaný překladem dotazu do formátu metody.

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)

Další informace o metodách dotazů najdete v tématu Dotazy. Další informace o standardních operátorech dotazů naleznete v tématu Přehled operátorů standardních dotazů.

Viz také