閱讀英文版本

分享方式:


MethodImplAttributes 列舉

定義

指定方法實作的屬性旗標。

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

此 API 支援此產品基礎結構,但無法直接用於程式碼之中。

C#
public enum MethodImplAttributes
C#
[System.Flags]
[System.Serializable]
public enum MethodImplAttributes
C#
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum MethodImplAttributes
繼承
MethodImplAttributes
屬性

欄位

名稱 Description
AggressiveInlining 256

指定可行時應內嵌方法。

AggressiveOptimization 512

指定可行時應最佳化的方法。

CodeTypeMask 3

指定有關程式碼類型的旗標。

ForwardRef 16

指定方法未定義。

IL 0

指定方法以 Microsoft 中繼語言 (MSIL) 實作。

InternalCall 4096

指定內部呼叫。

Managed 0

指定方法是以 Managed 程式碼實作。

ManagedMask 4

指定方法是以 Managed 或 Unmanaged 程式碼實作。

MaxMethodImplVal 65535

指定範圍檢查值。

Native 1

指定方法實作為原生。

NoInlining 8

指定方法無法內嵌。

NoOptimization 64

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

OPTIL 2

指定方法以最佳化中繼語言 (OPTIL) 實作。

PreserveSig 128

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

Runtime 3

指定方法實作由執行階段提供。

SecurityMitigations 1024

這個成員保留供未來使用。 這是在 .NET Framework 4.8 中引進的。

Synchronized 32

指定方法是單一執行緒,透過主體。 靜態方法 (Visual Basic 中的Shared ) 鎖定類型,執行個體方法則鎖定執行個體。 針對此目的,您也可以使用 C# lock 陳述式 或 Visual Basic SyncLock 陳述式

Unmanaged 4

指定方法是以 Unmanaged 程式碼實作。

備註

屬性會使用位 OR 運算來結合,如下所示:

程式代碼實作遮罩:

  • CodeTypeMask

  • IL

  • Native

  • OPTIL

  • Runtime

受控遮罩:

  • ManagedMask

  • Unmanaged

  • Managed

實作資訊和 Interop 遮罩:

  • ForwardRef

  • PreserveSig

  • InternalCall

  • Synchronized

  • NoInlining

  • NoOptimization

  • MaxMethodImplVal

  • SecurityMitigations (從 .NET Framework 4.8.) 開始提供

備註

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

適用於

產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

另請參閱