Sdílet prostřednictvím


Výraz funkce (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

termín Definice
parameterlist Volitelný. 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 příkaz Return.) 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 Language-Integrated Query (LINQ) 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é