Freigeben über


MethodImplAttributes Enumeration

Definition

Gibt Flags für die Attribute einer Methodenimplementierung an.

Diese Enumeration unterstützt eine bitweise Kombination ihrer Memberwerte.

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

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
Vererbung
MethodImplAttributes
Attribute

Felder

AggressiveInlining 256

Gibt an, dass die Methode nach Möglichkeit intern sein muss.

AggressiveOptimization 512

Gibt an, dass die Methode nach Möglichkeit optimiert werden soll.

CodeTypeMask 3

Gibt Flags zum Codetyp an.

ForwardRef 16

Gibt an, dass die Methode nicht definiert ist.

IL 0

Gibt an, dass die Methodenimplementierung in MSIL (Microsoft Intermediate Language) vorliegt.

InternalCall 4096

Gibt einen internen Aufruf an.

Managed 0

Gibt an, dass die Methode in verwaltetem Code implementiert wird.

ManagedMask 4

Gibt an, ob die Methode in verwaltetem oder nicht verwaltetem Code implementiert wird.

MaxMethodImplVal 65535

Gibt einen Wert für eine Bereichsprüfung an.

Native 1

Gibt an, dass die Methodenimplementierung nativ ist.

NoInlining 8

Gibt an, dass die Methode nicht intern sein kann.

NoOptimization 64

Gibt an, dass die Methode beim Debuggen möglicher Codegenerierungsprobleme nicht durch den Just-in-Time-Compiler (JIT) oder durch Generierung von nativem Code (siehe Ngen.exe) optimiert wird.

OPTIL 2

Gibt an, dass die Methodenimplementierung in OPTIL (Optimized Intermediate Language) vorliegt.

PreserveSig 128

Gibt an, dass die Signatur der Methode genau entsprechend der Deklaration exportiert wird.

Runtime 3

Gibt an, dass die Methodenimplementierung von der Laufzeit bereitgestellt wird.

SecurityMitigations 1024

Dieses Element ist für die zukünftige Verwendung reserviert. Es wurde in .NET Framework 4.8 eingeführt.

Synchronized 32

Gibt an, dass die Methode im Haupttext in einem einzelnen Thread verarbeitet wird. Statische Methoden (Shared in Visual Basic) sperren den Typ, wohingegen Instanzmethoden die Instanz sperren. Sie können auch die lock-Anweisung in C# oder die SyncLock-Anweisung in Visual Basic für diesen Zweck verwenden.

Unmanaged 4

Gibt an, dass die Methode in nicht verwaltetem Code implementiert wird.

Hinweise

Die Attribute werden mit dem bitweisen OR-Vorgang wie folgt kombiniert:

Codeimplementierungsmasken:

  • CodeTypeMask

  • IL

  • Native

  • OPTIL

  • Runtime

Verwaltete Masken:

  • ManagedMask

  • Unmanaged

  • Managed

Implementierungsinformationen und Interopmasken:

  • ForwardRef

  • PreserveSig

  • InternalCall

  • Synchronized

  • NoInlining

  • NoOptimization

  • MaxMethodImplVal

  • SecurityMitigations (Verfügbar ab .NET Framework 4.8.)

Hinweis

Das Sperren der Instanz oder des Typs, wie beim Synchronized Flag, wird für öffentliche Typen nicht empfohlen, da anderer Code als Ihr eigener Code Sperren für öffentliche Typen und Instanzen ergreifen kann. Dies kann zu Deadlocks oder anderen Synchronisierungsproblemen führen.

Gilt für:

Weitere Informationen