MethodImplAttributes Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- 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 ( |
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ą.