MethodImplOptions 列舉
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
指定常數,定義如何實作方法的詳細資料。
此列舉支援其成員值的位元組合。
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
- 繼承
- 屬性
欄位
AggressiveInlining | 256 | 此方法應該盡可能內嵌。 不必要地使用這個屬性可能會降低效能。 屬性可能會導致發生實作限制,這會導致產生的程式代碼變慢。 請務必測量效能,以確保套用此屬性很有説明。 |
AggressiveOptimization | 512 | 方法包含應該一律針對效能優化的程序代碼。 很少適合使用這個屬性。 套用此屬性的方法會略過 階層式編譯 的第一層,因此不會受益於依賴階層式編譯的優化。 這些優化包括 動態 PGO 和根據初始化類別的優化。 使用這個屬性也可能會增加記憶體使用量。 請務必測量效能,以確保套用此屬性很有説明。 |
ForwardRef | 16 | 方法已宣告,但是其實作在其他地方提供。 |
InternalCall | 4096 | 呼叫是內部的,亦即,它會呼叫在通用語言執行平台內實作的方法。 |
NoInlining | 8 | 方法無法內嵌。 內嵌是一項最佳化作業,透過該作業,方法呼叫可使用方法主體取代。 |
NoOptimization | 64 | 對可能的程式碼產生問題進行偵錯時,方法不是由 Just-In-Time (JIT) 編譯器或原生程式碼產生最佳化 (請參閱 Ngen.exe)。 |
PreserveSig | 128 | 方法簽章會完全依宣告方式匯出。 |
SecurityMitigations | 1024 | 這個成員保留供未來使用。 它已在 .NET Framework 4.8 中引進。 |
Synchronized | 32 | 方法一次只能由一個執行緒來執行。 靜態方法鎖定型別,而執行個體方法鎖定執行個體。 在任何執行個體函式中只能執行一個執行緒,且只有一個執行緒可在任何類別的靜態函式中執行。 |
Unmanaged | 4 | 方法是以 Unmanaged 程式碼實作。 |
備註
這個列舉會與 屬性搭配 MethodImplAttribute 使用。
您可以使用位 OR 運算子來指定多個 MethodImplOptions 值。
注意
不建議針對公用類型鎖定實例或型 Synchronized
別鎖定,因為您自己的程式代碼可以鎖定公用類型和實例。 這可能會造成死結或其他同步處理問題。