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

AggressiveInlining 256

Určuje, že metoda by měla být vložena, kdykoli je to možné.

AggressiveOptimization 512

Určuje, že metoda by měla být optimalizována, kdykoli je to možné.

CodeTypeMask 3

Určuje příznaky týkající se typu kódu.

ForwardRef 16

Určuje, že metoda není definována.

IL 0

Určuje, že implementace metody je v jazyce MSIL (Microsoft Intermediate Language).

InternalCall 4096

Určuje interní volání.

Managed 0

Určuje, že metoda je implementována ve spravovaném kódu.

ManagedMask 4

Určuje, jestli je metoda implementována ve spravovaném nebo nespravovaném kódu.

MaxMethodImplVal 65535

Určuje kontrolní hodnotu rozsahu.

Native 1

Určuje, že implementace metody je nativní.

NoInlining 8

Určuje, že metodu nelze inlinovat.

NoOptimization 64

Určuje, že metoda není při ladění možných problémů s generováním kódu optimalizovaná kompilátorem JIT (just-in-time) nebo nativním generováním kódu (viz Ngen.exe).

OPTIL 2

Určuje, že implementace metody je v optil (Optimized Intermediate Language).

PreserveSig 128

Určuje, že podpis metody je exportován přesně tak, jak bylo deklarováno.

Runtime 3

Určuje, že modul runtime poskytuje implementaci metody.

SecurityMitigations 1024

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

Synchronized 32

Určuje, že metoda je jednovláknová prostřednictvím těla. Statické metody (Shared v jazyce Visual Basic) zamknou typ, zatímco metody instance uzamknou instanci. K tomuto účelu můžete použít také příkaz lock jazyka C# nebo příkaz Visual Basic SyncLock .

Unmanaged 4

Určuje, že metoda je implementována v nespravovaném kódu.

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 interoperability:

  • ForwardRef

  • PreserveSig

  • InternalCall

  • Synchronized

  • NoInlining

  • NoOptimization

  • MaxMethodImplVal

  • SecurityMitigations (K dispozici od .NET Framework 4.8.)

Poznámka

Uzamčení instance nebo typu, stejně 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 vzájemné zablokování nebo jiné problémy se synchronizací.

Platí pro

Viz také