Sdílet prostřednictvím


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

AggressiveInlining 256

Metoda by měla být vložena, pokud je to možné.

Nepotřebné použití tohoto atributu může snížit výkon. Atribut může způsobit, že dojde k limitům implementace, které budou mít za následek pomalejší vygenerovaný kód. Vždy změřte výkon, abyste zajistili, že je užitečné použít tento atribut.

AggressiveOptimization 512

Metoda obsahuje kód, který by měl být vždy optimalizován pro výkon.

Tento atribut je vhodné použít jen zřídka. Metody, které tento atribut používají, obcházejí první úroveň vrstvené kompilace , a proto nemají užitek z optimalizací, které závisí na vrstvené kompilaci. Tyto optimalizace zahrnují dynamické PGO a optimalizace založené na inicializovaných třídách. Použití tohoto atributu může také zvýšit využití paměti. Vždy změřte výkon, abyste zajistili, že je užitečné použít tento atribut.

ForwardRef 16

Metoda je deklarována, ale její implementace je k dispozici jinde.

InternalCall 4096

Volání je interní, to znamená, že volá metodu, která je implementovaná v rámci modulu CLR (Common Language Runtime).

NoInlining 8

Metoda nemůže být vložena. Inlining je optimalizace, při které je volání metody nahrazeno tělem metody.

NoOptimization 64

Metoda není při ladění možných problémů s generováním kódu optimalizovaná kompilátorem JIT (just-in-time) ani generováním nativního kódu (viz Ngen.exe).

PreserveSig 128

Podpis metody se exportuje přesně tak, jak je deklarováno.

SecurityMitigations 1024

Tento člen je vyhrazen pro budoucí použití. Byl zaveden v rozhraní .NET Framework 4.8.

Synchronized 32

Metoda může být spuštěna pouze jedním vláknem najednou. Statické metody uzamknou typ, zatímco metody instance uzamknou instanci. V některé z funkcí instance může být spuštěno pouze jedno vlákno a pouze jedno vlákno může spustit v libovolné statické funkci třídy.

Unmanaged 4

Metoda je implementována v nespravovaném kódu.

Poznámky

Tento výčet se používá s atributem MethodImplAttribute .

Více hodnot můžete zadat MethodImplOptions pomocí bitového operátoru OR.

Poznámka

Uzamčení instance nebo typu, jako u příznaku Synchronized , se nedoporučuje pro veřejné typy, protože jiný kód než váš vlastní může převzít zámky na veřejných typech a instancích. To může způsobit zablokování nebo jiné problémy se synchronizací.

Platí pro