MethodImplOptions 列舉

定義

指定常數,定義如何實作方法的詳細資料。

此列舉支援其成員值的位元組合。

public enum class MethodImplOptions
[System.Flags]
public enum MethodImplOptions
[System.Flags]
[System.Serializable]
public enum MethodImplOptions
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum MethodImplOptions
[<System.Flags>]
type MethodImplOptions = 
[<System.Flags>]
[<System.Serializable>]
type MethodImplOptions = 
[<System.Flags>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MethodImplOptions = 
Public Enum MethodImplOptions
繼承
MethodImplOptions
屬性

欄位

AggressiveInlining 256

此方法應該盡可能內嵌。

不必要地使用這個屬性可能會降低效能。 屬性可能會導致發生實作限制,這會導致產生的程式碼變慢。 請務必測量效能,以確保套用此屬性很有説明。

AggressiveOptimization 512

方法包含應該一律針對效能優化的程式碼。

很少適合使用這個屬性。 套用此屬性的方法會略過 階層式編譯 的第一層,因此不會受益于依賴階層式編譯的優化。 這些優化包括 動態 PGO 和根據初始化類別的優化。 使用這個屬性也可能會增加記憶體使用量。 請務必測量效能,以確保套用此屬性很有説明。

ForwardRef 16

方法已宣告,但是其實作在其他地方提供。

InternalCall 4096

呼叫是內部的,亦即,它會呼叫在通用語言執行平台內實作的方法。

NoInlining 8

方法無法內嵌。 內嵌是一項最佳化作業,透過該作業,方法呼叫可使用方法主體取代。

NoOptimization 64

對可能的程式碼產生問題進行偵錯時,方法不是由 Just-In-Time (JIT) 編譯器或原生程式碼產生最佳化 (請參閱 Ngen.exe)。

PreserveSig 128

方法簽章會完全依宣告方式匯出。

SecurityMitigations 1024

這個成員保留供未來使用。 它已在 4.8 .NET Framework 引進。

Synchronized 32

方法一次只能由一個執行緒來執行。 靜態方法鎖定型別,而執行個體方法鎖定執行個體。 在任何執行個體函式中只能執行一個執行緒,且只有一個執行緒可在任何類別的靜態函式中執行。

Unmanaged 4

方法是以 Unmanaged 程式碼實作。

備註

這個列舉會與 屬性搭配 MethodImplAttribute 使用。

您可以使用位 OR 運算子來指定多個 MethodImplOptions 值。

注意

不建議針對公用類型鎖定實例或型 Synchronized 別鎖定,因為您自己的程式碼可以鎖定公用類型和實例。 這可能會造成死結或其他同步處理問題。

適用於