MethodImplAttributes Wyliczenie

Definicja

Określa flagi atrybutów implementacji metody.

To wyliczenie obsługuje bitową kombinację jego wartości składowych.

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

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
Dziedziczenie
MethodImplAttributes
Atrybuty

Pola

Nazwa Wartość Opis
IL 0

Określa, że implementacja metody jest w Microsoft języku pośrednim (MSIL).

Managed 0

Określa, że metoda jest implementowana w kodzie zarządzanym.

Native 1

Określa, że implementacja metody jest natywna.

OPTIL 2

Określa, że implementacja metody jest w zoptymalizowanym języku pośrednim (OPTIL).

CodeTypeMask 3

Określa flagi dotyczące typu kodu.

Runtime 3

Określa, że implementacja metody jest dostarczana przez środowisko uruchomieniowe.

ManagedMask 4

Określa, czy metoda jest implementowana w kodzie zarządzanym, czy niezarządzanych.

Unmanaged 4

Określa, że metoda jest implementowana w kodzie niezarządzanych.

NoInlining 8

Określa, że nie można podlinkować metody.

ForwardRef 16

Określa, że metoda nie jest zdefiniowana.

Synchronized 32

Określa, że metoda jest jednowątkowa przez treść. Metody statyczne (Shared w Visual Basic) blokują typ, podczas gdy metody wystąpień blokują wystąpienie. W tym celu można również użyć instrukcji lock lub instrukcji Visual Basic SyncLock.

NoOptimization 64

Określa, że metoda nie jest zoptymalizowana przez kompilator just in time (JIT) ani przez generowanie kodu natywnego (zobacz Ngen.exe) podczas debugowania możliwych problemów z generowaniem kodu.

PreserveSig 128

Określa, że podpis metody jest eksportowany dokładnie zgodnie z zadeklarowanym.

AggressiveInlining 256

Określa, że metoda powinna być wciśnięta wszędzie tam, gdzie to możliwe.

AggressiveOptimization 512

Określa, że metoda powinna być zoptymalizowana zawsze, gdy jest to możliwe.

SecurityMitigations 1024

Ten element członkowski jest zarezerwowany do użytku w przyszłości. Wprowadzono go w programie .NET Framework 4.8.

InternalCall 4096

Określa wywołanie wewnętrzne.

Async 8192
MaxMethodImplVal 65535

Określa wartość sprawdzania zakresu.

Uwagi

Atrybuty są łączone przy użyciu operacji bitowej OR w następujący sposób:

Maski implementacji kodu:

  • CodeTypeMask

  • IL

  • Native

  • OPTIL

  • Runtime

Maski zarządzane:

  • ManagedMask

  • Unmanaged

  • Managed

Informacje o implementacji i maski międzyoperacyjne:

  • ForwardRef

  • PreserveSig

  • InternalCall

  • Synchronized

  • NoInlining

  • NoOptimization

  • MaxMethodImplVal

  • SecurityMitigations (dostępne od platformy .NET Framework 4.8).

Note

Blokowanie wystąpienia lub typu, podobnie jak w Synchronized przypadku flagi, nie jest zalecane w przypadku typów publicznych, ponieważ kod inny niż własny może przyjmować blokady dla typów publicznych i wystąpień. Może to spowodować zakleszczenia lub inne problemy z synchronizacją.

Dotyczy

Zobacz też