MethodImplAttributes 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
メソッド実装の属性のフラグを指定します。
この列挙体は、メンバー値のビットごとの組み合わせをサポートしています。
この 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
- 継承
- 属性
フィールド
| 名前 | 値 | 説明 |
|---|---|---|
| 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 | メソッドが本体を通じてシングル スレッドであることを指定します。 静的メソッド ( |
| 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 演算を使用して結合されます。
コード実装マスク:
CodeTypeMaskILNativeOPTILRuntime
マネージド マスク:
ManagedMaskUnmanagedManaged
実装情報と相互運用マスク:
ForwardRefPreserveSigInternalCallSynchronizedNoInliningNoOptimizationMaxMethodImplValSecurityMitigations(.NET Framework 4.8 以降で使用可能)。
注
Synchronized フラグと同様に、インスタンスまたは型でロックすることは、パブリック型には推奨されません。これは、独自のコード以外のコードがパブリック型とインスタンスに対してロックを行うことができるためです。 これにより、デッドロックやその他の同期の問題が発生する可能性があります。