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 | メソッドを実行できるのは、一度に 1 つのスレッドだけです。 静的メソッドは型をロックし、インスタンス メソッドはインスタンスをロックします。 インスタンス関数で実行できるスレッドは 1 つだけです。また、クラスの静的関数で実行できるスレッドも 1 つだけです。 |
Unmanaged | 4 | メソッドはアンマネージ コードに実装されます。 |
注釈
この列挙は、 属性と共に MethodImplAttribute 使用されます。
ビットごとの OR 演算子を使用して、複数 MethodImplOptions の値を指定できます。
注意
独自のコード以外のコードはパブリック型とインスタンスに対してロックを取ることができるため、パブリック型の場合と同様 Synchronized
に、インスタンスまたは型でロックすることはお勧めしません。 これにより、デッドロックやその他の同期の問題が発生する可能性があります。
適用対象
.NET