Megosztás a következőn keresztül:


Függvénykifejezés (Visual Basic)

Deklarálja a lambda függvényt meghatározó paramétereket és kódot.

Syntax

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

Részek

Időszak Definíció
parameterlist Opcionális. Az eljárás paramétereit képviselő helyi változónevek listája. A zárójeleknek akkor is jelen kell lenniük, ha a lista üres. Lásd: Paraméterlista.
expression Szükséges. Egyetlen kifejezés. A kifejezés típusa a függvény visszatérési típusa.
statements Szükséges. Azoknak az utasításoknak a listája, amelyek értéket adnak vissza az Return utasítás használatával. (Lásd: Visszatérési utasítás.) A visszaadott érték típusa a függvény visszatérési típusa.

Megjegyzések

A lambda kifejezés egy név nélküli függvény, amely kiszámítja és visszaadja az értéket. A lambda kifejezést bárhol használhatja, ahol delegált típust használhat, kivéve argumentumként.RemoveHandler A meghatalmazottakról és a lambdakifejezések meghatalmazottakkal való használatáról további információt a Delegáltak nyilatkozata és a Meghatalmazások nyugodt átalakítása című témakörben talál.

Lambda kifejezés szintaxisa

A lambda kifejezés szintaxisa egy standard függvényhez hasonlít. A különbségek a következők:

  • A lambda kifejezésnek nincs neve.

  • A Lambda-kifejezésekben nem lehetnek módosítók, például Overloads vagy Overrides.

  • A Lambda-kifejezések nem használnak záradékot As a függvény visszatérési típusának kijelöléséhez. Ehelyett a típus abból az értékből következik, amelyet egy egysoros lambdakifejezés törzse kiértékel, vagy egy többsoros lambdakifejezés visszatérési értéke. Ha például egy egysoros lambda kifejezés törzse, Where cust.City = "London"akkor a visszatérési típusa .Boolean

  • Az egysoros lambda kifejezés törzsének kifejezésnek, nem utasításnak kell lennie. A törzs egy függvényművelet hívásából állhat, de nem alművelet hívásából.

  • Vagy minden paraméternek megadott adattípusokkal kell rendelkeznie, vagy az összeset ki kell következtetni.

  • A választható és a paramarray paraméterek nem engedélyezettek.

  • Az általános paraméterek nem engedélyezettek.

1. példa

Az alábbi példák két módszert mutatnak be egyszerű lambdakifejezések létrehozására. Az első a függvény nevét adja Dim meg. A függvény meghívásához a paraméter értékét kell megadnia.

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

2. példa

Másik lehetőségként deklarálhatja és futtathatja a függvényt egyszerre.

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

3. példa

Az alábbiakban egy példa egy lambda kifejezésre, amely növeli az argumentumot, és visszaadja az értéket. A példában egy függvény egysoros és többsoros lambdakifejezés-szintaxisa is látható. További példákért lásd a Lambda-kifejezéseket.

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

4. példa

A Lambda-kifejezések a Language-Integrated Query (LINQ) számos lekérdezési operátorának alapjául szolgálnak, és kifejezetten használhatók metódusalapú lekérdezésekben. Az alábbi példa egy tipikus LINQ-lekérdezést mutat be, amelyet a lekérdezés metódusformátumba történő fordítása követ.

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)

A lekérdezési módszerekről további információt a Lekérdezések című témakörben talál. A standard lekérdezési operátorokról további információt a Standard lekérdezési operátorok áttekintése című témakörben talál.

Lásd még