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
| Nazwa | Wartość | Opis |
|---|---|---|
| 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:
CodeTypeMaskILNativeOPTILRuntime
Zarządzane maski:
ManagedMaskUnmanagedManaged
Informacje o implementacji i maski międzyoperacyjności:
ForwardRefPreserveSigInternalCallSynchronizedNoInliningNoOptimizationMaxMethodImplValSecurityMitigations(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ą.