Sdílet prostřednictvím


Function – výraz (Visual Basic)

Deklaruje parametry a kód, který bude definovat lambda výraz funkce.

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

Části

Termín

Definice

parameterlist

Nepovinné.Seznam místních názvů proměnných, které představují parametry tohoto postupu.Závorky musí být i v případě, že seznam je prázdný.Viz téma Seznam parametrů (Visual Basic).

expression

Povinné.Jeden výraz.Typ výrazu je návratový typ funkce.

statements

Povinné.Seznam příkazů, který vrátí hodnotu pomocí Return prohlášení.(See Return – příkaz (Visual Basic).) Typ vrácené hodnoty je návratový typ funkce.

Poznámky

A lambda výraz je funkce bez názvu, který vypočítá a vrátí hodnotu.Lambda výraz lze použít kdekoli použít typ delegáta, s výjimkou jako argument RemoveHandler.Další informace o delegátů a použití lambda výrazů s delegáty, viz Delegate – příkaz a Volný převod delegáta (Visual Basic).

Lambda syntaxi výrazu

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

  • Lambda výraz nemá název.

  • Lambda výrazy nemůže mít modifikátory, jako například Overloads nebo Overrides.

  • Lambda výrazy nepoužívejte As klauzule určit návratový typ funkce.Místo toho je typ odvodit z těla jeden řádek lambda výraz vyhodnocen jako hodnota nebo vrácená hodnota víceřádková lambda výraz.Například pokud je subjekt jeden řádek lambda výraz Where cust.City = "London", jeho návratový typ je Boolean.

  • Subjekt jeden řádek lambda výraz musí být výraz není prohlášení.Subjekt se může skládat z volání funkce postup, ale není volání procedury sub.

  • Buď všechny parametry musí zadané typy dat nebo všechna odvodit.

  • Volitelné a Paramarray parametrů nejsou povoleny.

  • Obecné parametry nejsou povoleny.

Příklad

Následující příklady ukazují dva způsoby, jak vytvořit jednoduchý lambda výrazy.První použití Dim zadejte název funkce.Chcete-li volat funkce, odeslat hodnotu pro parametr.

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

Alternativně můžete deklarovat a spusťte funkci současně.

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

Je příklad lambda výraz, který zvýší jeho argument a vrátí hodnotu.Příklad ukazuje obě jednořádkové a víceřádkové lambda výraz syntaxe pro funkci.Další příklady naleznete v tématu Lambda – výrazy (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))

Lambda výrazy základem mnoha operátory dotazu v LINQ (Language-Integrated Query)a lze je použít explicitně v metody založené na dotazech.Následující příklad ukazuje typickou LINQ dotazu, následuje překlad dotazu do formátu metoda.

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 dotazu, viz Dotazy (Visual Basic).Další informace o operátorech standardního dotazu viz Přehled standardních operátorů dotazu.

Viz také

Referenční dokumentace

Function – příkaz (Visual Basic)

If – operátor (Visual Basic)

Koncepty

Lambda – výrazy (Visual Basic)

Operátory a výrazy v jazyce Visual Basic

Porovnání hodnot (Visual Basic)

Výrazy logických hodnot (Visual Basic)

Volný převod delegáta (Visual Basic)

Další zdroje

Příkazy v jazyce Visual Basic