System.Reflection.Emit.MethodBuilder 類別

本文提供此 API 參考文件的補充備註。

類別 MethodBuilder 可用來完整描述通用中繼語言 (CIL) 中的方法,包括名稱、屬性、簽章和方法主體。 它會與 類別搭配 TypeBuilder 使用,以在運行時間建立類別。

您可以使用反映發出來定義全域方法,以及將方法定義為類型成員。 定義方法的 API 會傳回 MethodBuilder 物件。

全域方法

全域方法是使用 ModuleBuilder.DefineGlobalMethod 傳回 MethodBuilder 物件的 方法所定義。

全域方法必須是靜態的。 如果動態模組包含全域方法, ModuleBuilder.CreateGlobalFunctions 則必須先呼叫 方法,才能保存動態模組或包含動態元件,因為 Common Language Runtime 會延後修正動態模組,直到定義所有全域函式為止。

全域原生方法是使用 ModuleBuilder.DefinePInvokeMethod 方法來定義。 平台調用 (PInvoke) 方法不得宣告為抽象或虛擬。 運行時間會設定 MethodAttributes.PinvokeImpl 平台調用方法的屬性。

做為型別成員的方法

方法會使用 TypeBuilder.DefineMethod 傳回 MethodBuilder 物件的 方法,定義為類型成員。

方法 DefineParameter 可用來設定參數的名稱和參數屬性,或傳回值的名稱和參數屬性。 ParameterBuilder這個方法傳回的物件代表參數或傳回值。 ParameterBuilder對象可用來設定封送處理、設定常數值,以及套用自定義屬性。

屬性

列舉的成員 MethodAttributes 會定義動態方法的精確字元:

已知問題