Lambda kifejezések (Programming Guide c #)

=> Operator ugyanolyan elsőbbséget a kiosztás (=), és a társult jobbra (lásd. Szakasz „asszociatív” üzemeltetői a cikket).

Lambda üzemeltetők használt LINQ lekérdezés szintaxisa módszerek paraméterként standard módszer lekérdezés szolgáltatók, mint például hol.

Amikor használja a szintaxis módszereken alapul, hogy indítsunk egy módszer Amennyiben Class Enumerable (mint a LINQ to Objects és a LINQ to XML) paraméter az a típusú küldött rendszer. Func . Lambda kifejezés - ez a legkényelmesebb módja annak, hogy egy ilyen küldöttet. Amikor hívja ugyanazt a módszert, például a lekérdezhető osztály (ahogy az LINQ to SQL) paraméter típusa Expression , ahol funk - bármilyen funk küldöttek számos bemeneti paraméterek legfeljebb tizenhat. Ismét lambda kifejezések a leggyorsabb módja annak, hogy építeni ilyen kifejezés fa. Lambda kifejezések lehetővé teszik hívások Hol ugyanúgy néz ki, bár valójában létrehozott objektumok a lambda kifejezések lesz különböző.

Megjegyezzük, hogy a fenti példában aláírás megbízottja van egy implicit bemeneti paraméter int típusú és visszaad egy értéket int típusú. A lambda kifejezés átalakítható a küldött megfelelő típusú, mivel ez is az egyik bemeneti paraméter (x), és visszaadja az érték, amely a fordító tud implicit alakítjuk int típusú. (Következtetés típusok tárgyaljuk részletesebben a következő részekben.) A megbízott által okozott bemeneti paraméter, 5, 25 visszatér az eredmény.

Lambda kifejezések nem engedélyezettek a bal oldalon van, vagy üzemeltetője.

Korlátozások nem vonatkoznak a névtelen módszereket is alkalmazni kell lambda kifejezéseket. További információkat. Lásd Anonymous módszerek (programozási útmutató C #).

Lambda kifejezés egy expressziós a jobb oldalán az üzemeltető => nevezzük egy expressziós lambda. Lambda-expresszió széles körben használják a létrehozása az ilyen szerkezetek, mint a kifejezés Fák (C # és Visual Basic). Kifejezések Lambda kifejezések és visszatér az eredménnyel a következő általános formában:

Továbbá, lambda kifejezéseket lehet használni, ha az argumentum típusú Expression. például a standard lekérdezés szolgáltatók, amelyek meghatározása System.Linq.Queryable. Amikor beállítja a típus az érvelés Expression lambda kifejezés összeállított egy fa.

Példa a szabvány az üzemeltető kérésére, az eljárás Count. alább látható:

A fordító lehet következtetni, hogy milyen típusú bemeneti paraméter; és ez lehet meghatározni explicit módon. Ez különösen a lambda megszámlálja az egész (n), amelyek, ha osztva két maradékot kapunk 1.

A következő kódsort sorozatát hozza létre, amely tartalmazza mindazokat az elemeket a tömb a számok. balra 9, mert ez az első szám a sorozatban nem kielégítő:

A következő szabályok vonatkoznak a változó alkalmazási körét a lambda kifejezéseket.

Elfogott változó nem lehet megsemmisíteni a szemétgyűjtő, amíg a résztvevő, amely hivatkozik, ne menjen be az állapotot kell megsemmisíteni szemétgyűjtés.

Egy változtatható bejelentett egy lambda kifejezés, nem látható a külső módszerrel.

A lambda kifejezés nem lehet közvetlenül rögzíteni ref vagy ki paraméterek a módszert, amelyben találhatók.

Return utasítás egy lambda kifejezés nem vezet a visszatérő (befejezés) eljárás, amelyben a bejelentett / úgynevezett lambda kifejezés.

Lambda kifejezés nem tartalmaz goto utasítást. Egy kis szünetet, vagy továbbra nyilatkozat belül Lambda funkció, ha a céltárgy ki az átmeneti blokk. Ha a célpont a blokkon belül, akkor a jelenlévő átmeneti üzemeltető kívül lambda funkció szintén egy hibát.

Kapcsolódó cikkek