Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Заметка
Эта статья является спецификацией компонентов. Спецификация служит проектным документом для функции. Она включает предлагаемые изменения спецификации, а также информацию, необходимую во время проектирования и разработки функции. Эти статьи публикуются до тех пор, пока предложенные изменения спецификации не будут завершены и включены в текущую спецификацию ECMA.
Может возникнуть некоторое несоответствие между спецификацией компонентов и завершенной реализацией. Эти различия фиксируются в соответствующих записи собрания по проектированию языка (LDM).
Дополнительные сведения о процессе внедрения спецификаций функций в стандарт языка C# см. в статье о спецификациях .
Проблема чемпиона: https://github.com/dotnet/csharplang/issues/1888
Атрибуты
Теперь объявления локальных функций разрешены иметь атрибуты (§22). Параметры и параметры типа для локальных функций также могут иметь атрибуты.
Атрибуты с заданным значением при применении к методу, его параметрам или параметрам типа будут иметь то же самое значение при применении к локальной функции, его параметрам или параметрам типа соответственно.
Локальная функция может быть сделана условной в том же смысле, что и условный метод (§22.5.3), с помощью декоратора [ConditionalAttribute]. Условная локальная функция также должна быть static. Все ограничения на условные методы также применяются к условным локальным функциям, включая то, что возвращаемый тип должен быть void.
Стажёр
Модификатор extern теперь разрешен для локальных функций. Это делает локальную функцию внешней в том же смысле, что и внешний метод (§15.6.8).
Аналогично внешнему методу, локальное тело-функции внешней локальной функции должно быть точкой с запятой. Точка с запятой локально-функции-body разрешена только во внешней локальной функции.
Внешняя локальная функция также должна быть static.
Синтаксис
§13.6.4или грамматика локальных функций изменяются следующим образом:
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