MethodImplAttributes Výčet
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje příznaky pro atributy implementace metody.
Tento výčet podporuje bitové kombinace hodnot jeho členů.
Toto rozhraní API podporuje produktovou infrastrukturu a není určené k použití přímo z uživatelského kódu.
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
- Dědičnost
- Atributy
Pole
| Name | Hodnota | Description |
|---|---|---|
| IL | 0 | Určuje, že implementace metody je v Microsoft zprostředkující jazyk (MSIL). |
| Managed | 0 | Určuje, že metoda je implementována ve spravovaném kódu. |
| Native | 1 | Určuje, že implementace metody je nativní. |
| OPTIL | 2 | Určuje, že implementace metody je v optimalizovaném zprostředkujícím jazyce (OPTIL). |
| CodeTypeMask | 3 | Určuje příznaky týkající se typu kódu. |
| Runtime | 3 | Určuje, že implementace metody je poskytována modulem runtime. |
| ManagedMask | 4 | Určuje, zda je metoda implementována ve spravovaném nebo nespravovaném kódu. |
| Unmanaged | 4 | Určuje, že metoda je implementována v nespravovaném kódu. |
| NoInlining | 8 | Určuje, že metodu nelze inlinovat. |
| ForwardRef | 16 | Určuje, že metoda není definována. |
| Synchronized | 32 | Určuje, že metoda je jednovláknová prostřednictvím těla. Statické metody ( |
| NoOptimization | 64 | Určuje, že metoda není optimalizována kompilátorem JIT (just-in-time) nebo nativním generováním kódu (viz Ngen.exe) při ladění možných problémů s generováním kódu. |
| PreserveSig | 128 | Určuje, že podpis metody je exportován přesně tak, jak je deklarován. |
| AggressiveInlining | 256 | Určuje, že metoda by měla být vložena všude, kde je to možné. |
| AggressiveOptimization | 512 | Určuje, že metoda by měla být optimalizována, kdykoli je to možné. |
| SecurityMitigations | 1024 | Tento člen je vyhrazen pro budoucí použití. Byla zavedena v .NET Framework 4.8. |
| InternalCall | 4096 | Určuje interní volání. |
| Async | 8192 | |
| MaxMethodImplVal | 65535 | Určuje hodnotu kontroly rozsahu. |
Poznámky
Atributy se kombinují pomocí bitové operace OR následujícím způsobem:
Masky implementace kódu:
CodeTypeMaskILNativeOPTILRuntime
Spravované masky:
ManagedMaskUnmanagedManaged
Informace o implementaci a masky vzájemné spolupráce:
ForwardRefPreserveSigInternalCallSynchronizedNoInliningNoOptimizationMaxMethodImplValSecurityMitigations(k dispozici od .NET Framework 4.8.)
Note
Uzamčení instance nebo typu, stejně jako u příznaku Synchronized , se nedoporučuje pro veřejné typy, protože kód jiný než váš vlastní může převzít zámky u veřejných typů a instancí. To může způsobit zablokování nebo jiné problémy se synchronizací.