Udostępnij za pośrednictwem


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

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.

CodeTypeMask 3

Określa flagi dotyczące typu kodu.

ForwardRef 16

Określa, że metoda nie jest zdefiniowana.

IL 0

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

InternalCall 4096

Określa wywołanie wewnętrzne.

Managed 0

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

ManagedMask 4

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

MaxMethodImplVal 65535

Określa wartość sprawdzania zakresu.

Native 1

Określa, że implementacja metody jest natywna.

NoInlining 8

Określa, że nie można uściślić metody.

NoOptimization 64

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

OPTIL 2

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

PreserveSig 128

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

Runtime 3

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

SecurityMitigations 1024

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

Synchronized 32

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

Unmanaged 4

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

Uwagi

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

Maski implementacji kodu:

  • CodeTypeMask

  • IL

  • Native

  • OPTIL

  • Runtime

Zarządzane maski:

  • ManagedMask

  • Unmanaged

  • Managed

Informacje o implementacji i maski międzyoperacyjności:

  • ForwardRef

  • PreserveSig

  • InternalCall

  • Synchronized

  • NoInlining

  • NoOptimization

  • MaxMethodImplVal

  • SecurityMitigations (Dostępne począwszy od programu .NET Framework 4.8).

Uwaga

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ż