Atributos en funciones localesAttributes on local functions
AtributosAttributes
Ahora se permite que las declaraciones de función local tengan atributos.Local function declarations are now permitted to have attributes. Los parámetros y los parámetros de tipo de las funciones locales también pueden tener atributos.Parameters and type parameters on local functions are also allowed to have attributes.
Los atributos con un significado especificado cuando se aplican a un método, sus parámetros o sus parámetros de tipo tendrán el mismo significado cuando se aplican a una función local, sus parámetros o sus parámetros de tipo, respectivamente.Attributes with a specified meaning when applied to a method, its parameters, or its type parameters will have the same meaning when applied to a local function, its parameters, or its type parameters, respectively.
Una función local puede hacerse condicional en el mismo sentido que un método condicional al decorarla con un [ConditionalAttribute] .A local function can be made conditional in the same sense as a conditional method by decorating it with a [ConditionalAttribute]. Una función local condicional también debe ser static .A conditional local function must also be static. Todas las restricciones de los métodos condicionales también se aplican a las funciones locales condicionales, lo que incluye que el tipo de valor devuelto debe ser void .All restrictions on conditional methods also apply to conditional local functions, including that the return type must be void.
ExternasExtern
externAhora se permite el modificador en las funciones locales.The extern modifier is now permitted on local functions. Esto hace que la función local sea externa en el mismo sentido que un método externo.This makes the local function external in the same sense as an external method.
De forma similar a un método externo, el cuerpo de la función local de una función local externa debe ser un punto y coma.Similarly to an external method, the local-function-body of an external local function must be a semicolon. Solo se permite un cuerpo de función local de punto y coma en una función local externa.A semicolon local-function-body is only permitted on an external local function.
Una función local externa también debe ser static .An external local function must also be static.
SintaxisSyntax
La gramática de funciones locales se modifica de la siguiente manera:The local functions grammar is modified as follows:
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
| ';'
;