Kezdőoldal » Számítástechnika » Programozás » C# ban miből tudja a fordító...

C# ban miből tudja a fordító kitalálni, hogy a lambda argumentumának milyen a típusa?

Figyelt kérdés
string b = a => a + a;
2016. okt. 14. 20:24
 1/3 anonim ***** válasza:
Type inference, hasonlóan, mint pl ha a var kulcsszóval definiálsz egy változót. A fordító a kontextusból kitalálja a típust.
2016. okt. 14. 21:09
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

Ez például nem is fordul le:

string b = a => a + a;

2016. okt. 14. 21:34
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:

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

2016. okt. 14. 21:46
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!