MethodImplOptions Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- Attribute
Felder
| Name | Wert | Beschreibung |
|---|---|---|
| Unmanaged | 4 | Die Methode wird im nicht verwalteten Code implementiert. |
| NoInlining | 8 | Die Methode kann nicht inlineiert werden. Inlining ist eine Optimierung, durch die ein Methodenaufruf durch den Methodentext ersetzt wird. |
| ForwardRef | 16 | Die Methode wird deklariert, aber ihre Implementierung wird an anderer Stelle bereitgestellt. |
| Synchronized | 32 | Die Methode kann jeweils nur von einem Thread ausgeführt werden. Statische Methoden sperren den Typ, während Instanzmethoden die Instanz sperren. Nur ein Thread kann in einer der Instanzfunktionen ausgeführt werden, und nur ein Thread kann in den statischen Funktionen einer Klasse ausgeführt werden. |
| NoOptimization | 64 | Die Methode wird nicht durch den Just-in-Time-Compiler (JIT) oder durch systemeigene Codegenerierung (siehe Ngen.exe) optimiert, wenn sie mögliche Probleme bei der Codegenerierung debuggen. |
| PreserveSig | 128 | Die Methodensignatur wird genau wie deklariert exportiert. |
| AggressiveInlining | 256 | Die Methode sollte nach Möglichkeit inlineiert werden. Die unnötige Verwendung dieses Attributs kann die Leistung verringern. 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. |
| SecurityMitigations | 1024 | Dieses Mitglied ist für die zukünftige Verwendung reserviert. Sie wurde in .NET Framework 4.8 eingeführt. |
| InternalCall | 4096 | Der Aufruf ist intern, d. h. es ruft eine Methode auf, die innerhalb der Common Language Runtime implementiert ist. |
Hinweise
Diese Aufzählung wird mit dem MethodImplAttribute Attribut verwendet.
Sie können mehrere MethodImplOptions Werte angeben, indem Sie den bitweisen OR-Operator verwenden.
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.