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
- 継承
- 属性
フィールド
| 名前 | 値 | 説明 |
|---|---|---|
| Unmanaged | 4 | このメソッドはアンマネージ コードで実装されます。 |
| NoInlining | 8 | メソッドをインライン化することはできません。 インライン化は、メソッド呼び出しをメソッド本体に置き換える最適化です。 |
| ForwardRef | 16 | メソッドは宣言されていますが、その実装は他の場所で提供されます。 |
| Synchronized | 32 | メソッドは、一度に 1 つのスレッドでのみ実行できます。 静的メソッドは型をロックしますが、インスタンス メソッドはインスタンスでロックします。 任意のインスタンス関数で実行できるスレッドは 1 つだけで、クラスの静的関数で実行できるスレッドは 1 つだけです。 |
| NoOptimization | 64 | このメソッドは、考えられるコード生成の問題をデバッグするときに、Just-In-Time (JIT) コンパイラまたはネイティブ コード生成 ( Ngen.exeを参照) によって最適化されません。 |
| PreserveSig | 128 | メソッド シグネチャは、宣言されたとおりにエクスポートされます。 |
| AggressiveInlining | 256 | 可能であれば、メソッドをインライン化する必要があります。 この属性を不要に使用すると、パフォーマンスが低下する可能性があります。 この属性により、実装の制限が発生し、生成されるコードが遅くなる可能性があります。 常にパフォーマンスを測定して、この属性を適用すると役に立ちます。 |
| SecurityMitigations | 1024 | このメンバーは、今後使用するために予約されています。 .NET Framework 4.8 で導入されました。 |
| InternalCall | 4096 | 呼び出しは内部的です。つまり、共通言語ランタイム内で実装されているメソッドを呼び出します。 |
注釈
この列挙型は、 MethodImplAttribute 属性と共に使用されます。
ビットごとの OR 演算子を使用して、複数の MethodImplOptions 値を指定できます。
Note
Synchronized フラグと同様に、インスタンスまたは型でロックすることは、パブリック型には推奨されません。これは、独自のコード以外のコードがパブリック型とインスタンスに対してロックを行うことができるためです。 これにより、デッドロックやその他の同期の問題が発生する可能性があります。