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
vagyOverrides
.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.