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

Name Wert Beschreibung
IL 0

Gibt an, dass sich die Methodenimplementierung in Microsoft Zwischensprache (MSIL) befindet.

Managed 0

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

Native 1

Gibt an, dass die Methodenimplementierung systemintern ist.

OPTIL 2

Gibt an, dass sich die Methodenimplementierung in der optimierten Zwischensprache (OPTIL) befindet.

CodeTypeMask 3

Gibt Flags zum Codetyp an.

Runtime 3

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

ManagedMask 4

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

Unmanaged 4

Gibt an, dass die Methode im nicht verwalteten Code implementiert wird.

NoInlining 8

Gibt an, dass die Methode nicht inlineiert werden kann.

ForwardRef 16

Gibt an, dass die Methode nicht definiert ist.

Synchronized 32

Gibt an, dass die Methode über den Textkörper mit einem Thread versehen wird. Statische Methoden (Shared in Visual Basic) sperren den Typ, während Instanzmethoden die Instanz sperren. Sie können auch die C#-lock-Anweisung oder die Visual Basic SyncLock verwenden.

NoOptimization 64

Gibt an, dass die Methode nicht vom Just-in-Time-Compiler (JIT) oder von systemeigener Codegenerierung (siehe Ngen.exe) optimiert wird, wenn sie mögliche Probleme bei der Codegenerierung debuggen.

PreserveSig 128

Gibt an, dass die Methodensignatur genau wie deklariert exportiert wird.

AggressiveInlining 256

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

AggressiveOptimization 512

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

SecurityMitigations 1024

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

InternalCall 4096

Gibt einen internen Aufruf an.

Async 8192
MaxMethodImplVal 65535

Gibt einen Bereichsprüfungswert an.

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 (Ab .NET Framework 4.8 verfügbar.)

Note

Das Sperren der Instanz oder des Typs, wie bei der Synchronized Kennzeichnung, wird für öffentliche Typen nicht empfohlen, da code außer Ihrem eigenen Sperren für öffentliche Typen und Instanzen übernehmen kann. Dies kann zu Deadlocks oder anderen Synchronisierungsproblemen führen.

Gilt für:

Weitere Informationen