Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Jegyzet
Ez a cikk egy funkcióspecifikáció. A specifikáció a funkció tervezési dokumentumaként szolgál. Tartalmazza a specifikáció javasolt módosításait, valamint a funkció tervezése és fejlesztése során szükséges információkat. Ezeket a cikkeket mindaddig közzéteszik, amíg a javasolt specifikációmódosításokat nem véglegesítik, és be nem építik a jelenlegi ECMA-specifikációba.
A szolgáltatás specifikációja és a befejezett implementáció között eltérések lehetnek. Ezeket a különbségeket a vonatkozó nyelvi tervezési értekezlet (LDM) megjegyzései rögzítik.
A funkcióspektusok C# nyelvi szabványba való bevezetésének folyamatáról a specifikációkcímű cikkben olvashat bővebben.
Bajnoki probléma: https://github.com/dotnet/csharplang/issues/111
Összefoglalás
Tegye lehetővé, hogy a visszavetéseket (_) a lambdák és névtelen metódusok paramétereként használják.
Például:
- lambdas:
(_, _) => 0,(int _, int _) => 0 - névtelen módszerek:
delegate(int _, int _) { return 0; }
Motiváció
A nem használt paramétereket nem kell megnevezni. A visszadobások szándéka egyértelmű, azaz fel nem használt/eldobott.
Részletes kialakítás
Metódusparaméterek – §15.6.2 Egy _nevű lambda vagy névtelen metódus paraméterlistájában ezek a paraméterek elvetési paraméterek.
Megjegyzés: ha egyetlen paraméter neve _, akkor az visszafelé kompatibilitási okokból rendszeres paraméter.
A kiszűrt paraméterek nem vezetnek be neveket egy hatókörbe sem.
Ez azt jelenti, hogy nem okoznak _ (aláhúzásjel) neveket, hogy el legyenek rejtve.
Egyszerű nevek (§12.8.4) Ha K nulla, és a simple_name megjelenik egy blokkban, és ha a blokk(vagy egy blokk) helyi változó deklarációs tér (Deklarációk - §7.3) tartalmaz egy helyi változót, paraméter (az elvetési paraméterek kivételével) vagy állandó Inévvel, akkor a simple_name arra a helyi változóra, paraméterre vagy állandóra hivatkozik, és változóként vagy értékként van besorolva.
Hatáskörök – §7.7 Az elvetési paraméterek kivételével, a lambda_expression függvényben deklarált paraméter hatóköre (12.19. §) az adott lambda_expressionanonymous_function_body. Az elvetési paraméterek kivételével a anonymous_method_expression metódusban deklarált paraméter hatóköre (12.19. §) az adott anonymous_method_expressionblokkjának.
Kapcsolódó specifikációs szakaszok
- Megfelelő paraméterek – §12.6.2.2
C# feature specifications