Freigeben über


MethodImplOptions Enumeration

Definition

Gibt Konstanten an, die die Details der Implementierung einer Methode definieren.

Diese Enumeration unterstützt eine bitweise Kombination ihrer Memberwerte.

public enum class MethodImplOptions
[System.Flags]
public enum MethodImplOptions
[System.Flags]
[System.Serializable]
public enum MethodImplOptions
[System.Flags]
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum MethodImplOptions
[<System.Flags>]
type MethodImplOptions = 
[<System.Flags>]
[<System.Serializable>]
type MethodImplOptions = 
[<System.Flags>]
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MethodImplOptions = 
Public Enum MethodImplOptions
Vererbung
MethodImplOptions
Attribute

Felder

AggressiveInlining 256

Die Methode sollte möglichst intern sein.

Eine unnötige Verwendung dieses Attributs kann die Leistung beeinträchtigen. Das Attribut kann dazu führen, dass Implementierungsgrenzwerte gefunden werden, die zu langsamer generiertem Code führen. Messen Sie immer die Leistung, um sicherzustellen, dass es hilfreich ist, dieses Attribut anzuwenden.

AggressiveOptimization 512

Die -Methode enthält Code, der immer für die Leistung optimiert werden sollte.

Es ist selten angebracht, dieses Attribut zu verwenden. Methoden, die dieses Attribut anwenden, umgehen die erste Ebene der mehrstufigen Kompilierung und profitieren daher nicht von Optimierungen, die auf mehrstufiger Kompilierung basieren. Diese Optimierungen umfassen dynamische PGO und Optimierungen, die auf initialisierten Klassen basieren. Die Verwendung dieses Attributs kann auch die Arbeitsspeicherauslastung erhöhen. Messen Sie immer die Leistung, um sicherzustellen, dass es hilfreich ist, dieses Attribut anzuwenden.

ForwardRef 16

Die Methode wird deklariert, aber die Implementierung wird an anderer Stelle bereitgestellt.

InternalCall 4096

Der Aufruf ist intern, d. h. es wird eine Methode aufgerufen, die innerhalb der Common Language Runtime implementiert wird.

NoInlining 8

Die Methode kann nicht intern sein. Inlining ist eine Optimierung, bei der der Aufruf einer Methode durch den Methodentext ersetzt wird.

NoOptimization 64

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

PreserveSig 128

Die Signatur der Methode wird genau entsprechend der Deklaration exportiert.

SecurityMitigations 1024

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

Synchronized 32

Die Methode kann nur jeweils von einem einzigen Thread ausgeführt werden. Statische Methoden sperren den Typ, wohingegen Instanzmethoden die Instanz sperren. Nur ein einziger Thread kann in einer der Instanzfunktionen ausgeführt werden, und nur ein einziger Thread kann in einer der statischen Funktionen einer Klasse ausgeführt werden.

Unmanaged 4

Die Methode wird in nicht verwalteten Code implementiert.

Hinweise

Diese Enumeration wird mit dem MethodImplAttribute -Attribut verwendet.

Sie können mehrere MethodImplOptions Werte angeben, indem Sie den bitweisen OR-Operator verwenden.

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 annehmen kann. Dies kann zu Deadlocks oder anderen Synchronisierungsproblemen führen.

Gilt für: