本機函式的屬性
注意
本文是功能規格。 規格可作為功能的設計檔。 其中包含建議的規格變更,以及功能設計和開發期間所需的資訊。 這些文章會發佈,直到提議的規格變更完成並併併入目前的ECMA規格為止。
功能規格與已完成實作之間可能有一些差異。 這些差異在 語言設計會議(LDM)的相關備忘錄中被擷取出來。
屬性
現在允許本機函式宣告具有屬性(§22)。 在本地函式中的參數和型別參數也可以具有屬性。
當套用至方法、其參數或其型別參數時,具有指定意義的屬性,在分別套用至區域函式、其參數或其類型參數時,其意義會相同。
使用 [ConditionalAttribute]
來裝飾可以使區域函式變成條件式,這與設定條件方法(§22.5.3)的方式相同。 條件式本機函式也必須 static
。 條件式方法的所有限制也適用於條件式區域函式,包括傳回型別必須 void
。
Extern
現在本機函式允許使用 extern
修飾詞。 這使得本地函式在某種意義上與外部方法(§15.6.8)一樣是外部的。
與外部方法類似,外部本地函式的 local-function-body 必須是分號。 局部函式 局部函式主體 只允許分號。
外部區域函式也必須 static
。
語法
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
| ';'
;