MethodImplAttributes 列挙型

定義

メソッド実装の属性のフラグを指定します。

この列挙体は、メンバー値のビットごとの組み合わせをサポートしています。

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

public enum class MethodImplAttributes
public enum MethodImplAttributes
[System.Flags]
[System.Serializable]
public enum MethodImplAttributes
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum MethodImplAttributes
type MethodImplAttributes = 
[<System.Flags>]
[<System.Serializable>]
type MethodImplAttributes = 
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MethodImplAttributes = 
Public Enum MethodImplAttributes
継承
MethodImplAttributes
属性

フィールド

名前 説明
IL 0

メソッドの実装が中間言語 (MSIL) Microsoft使用されることを指定します。

Managed 0

メソッドがマネージド コードに実装されることを指定します。

Native 1

メソッドの実装がネイティブであることを指定します。

OPTIL 2

メソッドの実装が最適化中間言語 (OPTIL) であることを指定します。

CodeTypeMask 3

コードの種類に関するフラグを指定します。

Runtime 3

メソッドの実装がランタイムによって提供されることを指定します。

ManagedMask 4

メソッドをマネージド コードとアンマネージド コードのどちらで実装するかを指定します。

Unmanaged 4

メソッドをアンマネージ コードで実装することを指定します。

NoInlining 8

メソッドをインライン化できないことを指定します。

ForwardRef 16

メソッドが定義されていないことを指定します。

Synchronized 32

メソッドが本体を通じてシングル スレッドであることを指定します。 静的メソッド (Shared Visual Basic) は型に対してロックされますが、インスタンス メソッドはインスタンスでロックされます。 この目的には、C# lock ステートメントまたは Visual Basic SyncLock ステートメントを使用することもできます。

NoOptimization 64

可能なコード生成の問題をデバッグするときに、Just-In-Time (JIT) コンパイラまたはネイティブ コード生成 ( Ngen.exeを参照) によってメソッドが最適化されないことを指定します。

PreserveSig 128

メソッド シグネチャが宣言されたとおりにエクスポートされることを指定します。

AggressiveInlining 256

可能な限りメソッドをインライン化することを指定します。

AggressiveOptimization 512

可能な限りメソッドを最適化することを指定します。

SecurityMitigations 1024

このメンバーは、今後使用するために予約されています。 .NET Framework 4.8 で導入されました。

InternalCall 4096

内部呼び出しを指定します。

Async 8192
MaxMethodImplVal 65535

範囲チェック値を指定します。

注釈

属性は、次のようにビットごとの OR 演算を使用して結合されます。

コード実装マスク:

  • CodeTypeMask

  • IL

  • Native

  • OPTIL

  • Runtime

マネージド マスク:

  • ManagedMask

  • Unmanaged

  • Managed

実装情報と相互運用マスク:

  • ForwardRef

  • PreserveSig

  • InternalCall

  • Synchronized

  • NoInlining

  • NoOptimization

  • MaxMethodImplVal

  • SecurityMitigations (.NET Framework 4.8 以降で使用可能)。

Synchronized フラグと同様に、インスタンスまたは型でロックすることは、パブリック型には推奨されません。これは、独自のコード以外のコードがパブリック型とインスタンスに対してロックを行うことができるためです。 これにより、デッドロックやその他の同期の問題が発生する可能性があります。

適用対象

こちらもご覧ください