C# ban miből tudja a fordító kitalálni, hogy a lambda argumentumának milyen a típusa?
Ez például nem is fordul le:
string b = a => a + a;
Kezdjük azzal, hogy vannak az ún. delegate-ek. Ezek arra jók, hogy leírjuk vele egy függvény vagy eljárás (vagy ahogy OOP nyelven hívjuk, a metódusok) alakját. Például:
delegate int TestFunctionType(int A, int B);
Innentől kezdve, ha egy TestFunctionType-nak megfelelő metódust vagy lambda kifejezést akarunk írni, annak int visszítérési értékűnek kell lennie, továbbá két int típusú paraméterének kell lennie.
Most kelleni fog nekünk egy változó, aminek egy metódust adunk értékként. A TestFunctionType megjelent a nyelvben, mint típus:
TestFunctionType Osszeadas = (A, B) => A+B;
Innentől kezdve a fordító - köszönhetően a TestFunctionType delegate-nek - pontosan tudja, hogy azok a paraméterek milyen típusúak, és milyen típusú visszatérési értéke van.
Az előbb deklarált változót hívd meg:
int Eredmeny = Osszeadas(5, 3);
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!