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

このメソッドには、Just-In-Time (JIT) コンパイラによって常に最適化される必要があるコードが含まれています。

最適化されていないバージョンのメソッドを実行すると、オーバーヘッドが多すぎたり、メモリ割り当てが余分になったりするなどの望ましくない影響がある場合に、この属性を使用します。

この属性を持つメソッドは、最適なコード生成を持たない可能性があります。 階層化コンパイルの第 1 層をバイパスするため、階層化に依存する最適化 (動的 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

メソッドを実行できるのは、一度に 1 つのスレッドだけです。 静的メソッドは型をロックし、インスタンス メソッドはインスタンスをロックします。 インスタンス関数で実行できるスレッドは 1 つだけです。また、クラスの静的関数で実行できるスレッドも 1 つだけです。

Unmanaged 4

メソッドはアンマネージ コードに実装されます。

注釈

この列挙型は属性と共に MethodImplAttribute 使用されます。

ビットごとの OR 演算子を使用して、複数 MethodImplOptions の値を指定できます。

注意

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

適用対象