Atributy místních funkcí
Poznámka
Tento článek je specifikace funkce. Specifikace slouží jako návrhový dokument pro funkci. Zahrnuje navrhované změny specifikace spolu s informacemi potřebnými při návrhu a vývoji funkce. Tyto články se publikují, dokud nebudou navrhované změny specifikace finalizovány a začleněny do aktuální specifikace ECMA.
Mezi specifikací funkce a dokončenou implementací může docházet k nějakým nesrovnalostem. Tyto rozdíly jsou zachyceny v příslušných poznámkách ze schůzky návrhu jazyka (LDM) .
Další informace o procesu přijetí specifikací funkcí do jazyka C# najdete v článku o specifikacích .
Atributy
Deklarace místní funkce jsou nyní povoleny mít atributy (§22). Parametry a parametry typu u místních funkcí mají také povolené atributy.
Atributy se zadaným významem při použití na metodu, jeho parametry nebo parametry typu budou mít stejný význam při použití na místní funkci, jeho parametry nebo parametry typu.
Místní funkce může být podmíněná ve stejném smyslu jako podmíněná metoda (§22.5.3) tím, že ji označí symbolem [ConditionalAttribute]
. Podmíněná lokální funkce musí být také static
. Všechna omezení podmíněných metod platí také pro podmíněné místní funkce, včetně požadavku, že návratový typ musí být void
.
Externí
Modifikátor extern
je teď povolený pro místní funkce. Díky tomu je místní funkce vnější ve stejném smyslu jako externí metoda (§15.6.8).
Podobně jako u externí metody musí být tělo místní funkce externí místní funkce středníkem. Středník ve struktuře místní funkce smí být použit pouze v externí místní funkci.
Externí místní funkce musí být také static
.
Syntax
§13.6.4, neboli gramatika místních funkcí , je modifikována takto:
local-function-header
: attributes? local-function-modifiers? return-type identifier type-parameter-list?
( formal-parameter-list? ) type-parameter-constraints-clauses
;
local-function-modifiers
: (async | unsafe | static | extern)*
;
local-function-body
: block
| arrow-expression-body
| ';'
;
C# feature specifications