MethodImplAttributes 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 i flag per gli attributi di un'implementazione del metodo.
Questa enumerazione supporta una combinazione bit per bit dei rispettivi valori dei membri.
Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice.
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
- Ereditarietà
- Attributi
Campi
| Nome | Valore | Descrizione |
|---|---|---|
| AggressiveInlining | 256 | Specifica che, se possibile, il metodo deve essere impostato come inline. |
| AggressiveOptimization | 512 | Specifica che il metodo deve essere ottimizzato quando possibile. |
| CodeTypeMask | 3 | Specifica i flag relativi al tipo di codice. |
| ForwardRef | 16 | Specifica che il metodo non è definito. |
| IL | 0 | Specifica che il metodo è implementato in MSIL (Microsoft Intermediate Language). |
| InternalCall | 4096 | Specifica una chiamata interna. |
| Managed | 0 | Specifica che il metodo è implementato in codice gestito. |
| ManagedMask | 4 | Specifica se il metodo è implementato in codice gestito o non gestito. |
| MaxMethodImplVal | 65535 | Specifica un valore di controllo dell'intervallo. |
| Native | 1 | Specifica che l'implementazione del metodo è nativa. |
| NoInlining | 8 | Specifica che il metodo non può essere impostato come inline. |
| NoOptimization | 64 | Specifica che il metodo non è ottimizzato dal compilatore JIT (Just-In-Time) o dalla generazione del codice nativo (vedere Ngen.exe) durante il debug di possibili problemi di generazione del codice. |
| OPTIL | 2 | Specifica che il metodo è implementato in OPTIL (Optimized Intermediate Language). |
| PreserveSig | 128 | Specifica che la firma del metodo viene esportata esattamente come viene dichiarata. |
| Runtime | 3 | Specifica che l'implementazione del metodo è fornita dal runtime. |
| SecurityMitigations | 1024 | Questo membro è riservato per usi futuri. È stato introdotto in .NET Framework 4.8. |
| Synchronized | 32 | Specifica che il metodo è a thread singolo attraverso il corpo. I metodi statici ( |
| Unmanaged | 4 | Specifica che il metodo è implementato in codice non gestito. |
Commenti
Gli attributi vengono combinati usando l'operazione OR bit per bit come segue:
Maschere di implementazione del codice:
CodeTypeMaskILNativeOPTILRuntime
Maschere gestite:
ManagedMaskUnmanagedManaged
Informazioni sull'implementazione e maschere di interoperabilità:
ForwardRefPreserveSigInternalCallSynchronizedNoInliningNoOptimizationMaxMethodImplValSecurityMitigationsDisponibile a partire da .NET Framework 4.8.
Nota
Il blocco dell'istanza o del tipo, come con il flag, non è consigliato per i tipi pubblici, perché il Synchronized codice diverso da quello personalizzato può accettare blocchi su tipi e istanze pubbliche. Ciò potrebbe causare deadlock o altri problemi di sincronizzazione.