MethodImplOptions Výčet

Definice

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
MethodImplOptions
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í.

Platí pro