Condividi tramite


MethodImplOptions Enumerazione

Definizione

Specifica 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à
MethodImplOptions
Attributi

Campi

AggressiveInlining 256

Il metodo deve essere impostato come inline, se possibile.

L'uso non necessario di questo attributo può ridurre le prestazioni. L'attributo potrebbe causare l'individuazione dei limiti di implementazione che causano un rallentamento del codice generato. Misurare sempre le prestazioni per assicurarsi che sia utile applicare questo attributo.

AggressiveOptimization 512

Il metodo contiene codice che deve essere sempre ottimizzato per le prestazioni.

Raramente è opportuno usare questo attributo. I metodi che applicano questo attributo ignorano il primo livello di compilazione a livelli e pertanto non traggono vantaggio dalle ottimizzazioni che si basano sulla compilazione a livelli. Tali ottimizzazioni includono pgo dinamico e ottimizzazioni basate su classi inizializzate. L'uso di questo attributo può anche aumentare l'uso della memoria. Misurare sempre le prestazioni per assicurarsi che sia utile applicare questo attributo.

ForwardRef 16

Il metodo è dichiarato, ma la relativa implementazione è specificata altrove.

InternalCall 4096

La chiamata è interna, ovvero viene chiamato un metodo implementato in Common Language Runtime.

NoInlining 8

Il metodo non può essere impostato come inline. L'inlining è un'ottimizzazione in base alla quale una chiamata a un metodo viene sostituita con il corpo del metodo.

NoOptimization 64

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.

PreserveSig 128

La firma del metodo viene esportata esattamente come dichiarato.

SecurityMitigations 1024

Questo membro è riservato per usi futuri. È stato introdotto in .NET Framework 4.8.

Synchronized 32

Il metodo può essere eseguito da un solo thread alla volta. I metodi statici creano un blocco sul tipo, mentre i metodi di istanza creano un blocco sull'istanza. In una delle funzioni dell'istanza e in una delle funzioni statiche di una classe può essere eseguito un solo thread.

Unmanaged 4

Il metodo è implementato in codice non gestito.

Commenti

Questa enumerazione viene utilizzata con l'attributo MethodImplAttribute .

È possibile specificare più MethodImplOptions valori usando l'operatore OR bit per bit.

Nota

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.

Si applica a