MethodImplAttributes Výčet

Definice

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
MethodImplAttributes
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 (Shared v Visual Basic) zamknou u typu, zatímco metody instance u instance zamknou. K tomuto účelu můžete použít také příkaz C# lock nebo příkaz Visual Basic SyncLock.

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:

  • CodeTypeMask

  • IL

  • Native

  • OPTIL

  • Runtime

Spravované masky:

  • ManagedMask

  • Unmanaged

  • Managed

Informace o implementaci a masky vzájemné spolupráce:

  • ForwardRef

  • PreserveSig

  • InternalCall

  • Synchronized

  • NoInlining

  • NoOptimization

  • MaxMethodImplVal

  • SecurityMitigations (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í.

Platí pro

Viz také