MethodImplOptions 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 konstanty, které definují podrobnosti o způsobu implementace metody.
Tento výčet podporuje bitové kombinace hodnot jeho členů.
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
- Dědičnost
- Atributy
Pole
| Name | Hodnota | Description |
|---|---|---|
| Unmanaged | 4 | Metoda je implementována v nespravovaném kódu. |
| NoInlining | 8 | Metodu nelze vystihot. Inlining je optimalizace, kterou volání metody je nahrazeno tělem metody. |
| ForwardRef | 16 | Metoda je deklarována, ale její implementace je poskytována jinde. |
| Synchronized | 32 | Metodu lze provést pouze jedním vláknem najednou. Statické metody zamknou u typu, zatímco metody instance u instance zamknou. Ve všech funkcích instance může být spuštěno pouze jedno vlákno a ve statických funkcích třídy může být spuštěno pouze jedno vlákno. |
| NoOptimization | 64 | Metoda není optimalizovaná 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 | Podpis metody se exportuje přesně tak, jak je deklarováno. |
| AggressiveInlining | 256 | Pokud je to možné, měla by být metoda vložena. Nepotřebné použití tohoto atributu může snížit výkon. Atribut může způsobit, že dojde k omezení implementace, které způsobí pomalejší vygenerovaný kód. Vždy změřte výkon, abyste měli jistotu, že tento atribut použijete. |
| SecurityMitigations | 1024 | Tento člen je vyhrazen pro budoucí použití. Byla zavedena v .NET Framework 4.8. |
| InternalCall | 4096 | Volání je interní, tj. volá metodu implementovanou v modulu CLR (Common Language Runtime). |
Poznámky
Tento výčet se používá s atributem MethodImplAttribute .
Pomocí bitového operátoru OR můžete zadat více MethodImplOptions hodnot.
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í.