MethodImplOptions Enumerazione
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Specifica le costanti che definiscono i dettagli della modalità di implementazione di un metodo.
Questa enumerazione supporta una combinazione bit per bit dei rispettivi valori dei membri.
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
- Ereditarietà
- Attributi
Campi
| Nome | Valore | Descrizione |
|---|---|---|
| Unmanaged | 4 | Il metodo viene implementato nel codice non gestito. |
| NoInlining | 8 | Il metodo non può essere inlined. L'inlining è un'ottimizzazione in base alla quale una chiamata al metodo viene sostituita con il corpo del metodo. |
| ForwardRef | 16 | Il metodo viene dichiarato, ma la relativa implementazione viene fornita altrove. |
| Synchronized | 32 | Il metodo può essere eseguito da un solo thread alla volta. I metodi statici bloccano il tipo, mentre i metodi di istanza bloccano l'istanza. Solo un thread può essere eseguito in una delle funzioni di istanza e solo un thread può essere eseguito in una delle funzioni statiche di una classe. |
| NoOptimization | 64 | Il metodo non è ottimizzato dal compilatore JIT (Just-In-Time) o dalla generazione di codice nativo (vedere Ngen.exe) durante il debug di possibili problemi di generazione del codice. |
| PreserveSig | 128 | La firma del metodo viene esportata esattamente come dichiarato. |
| AggressiveInlining | 256 | Se possibile, il metodo deve essere inlined. L'uso non necessario di questo attributo può ridurre le prestazioni. L'attributo potrebbe causare l'individuazione dei limiti di implementazione che determineranno un rallentamento del codice generato. Misurare sempre le prestazioni per assicurarsi che sia utile applicare questo attributo. |
| SecurityMitigations | 1024 | Questo membro è riservato per un uso futuro. È stato introdotto in .NET Framework 4.8. |
| InternalCall | 4096 | La chiamata è interna, ovvero chiama un metodo implementato all'interno di Common Language Runtime. |
Commenti
Questa enumerazione viene utilizzata con l'attributo MethodImplAttribute .
È possibile specificare più MethodImplOptions valori usando l'operatore OR bit per bit.
Note
Il blocco sull'istanza o sul tipo, come con il Synchronized flag , non è consigliato per i tipi pubblici, perché il codice diverso da quello dell'utente può accettare blocchi su tipi e istanze pubblici. Ciò potrebbe causare deadlock o altri problemi di sincronizzazione.