MethodImplAttributes Enumerazione

Definizione

Specifica i flag per gli attributi di un'implementazione di un 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à
MethodImplAttributes
Attributi

Campi

Nome Valore Descrizione
IL 0

Specifica che l'implementazione del metodo si trova in Microsoft linguaggio intermedio (MSIL).

Managed 0

Specifica che il metodo viene implementato nel codice gestito.

Native 1

Specifica che l'implementazione del metodo è nativa.

OPTIL 2

Specifica che l'implementazione del metodo è in Optimized Intermediate Language (OPTIL).

CodeTypeMask 3

Specifica i flag relativi al tipo di codice.

Runtime 3

Specifica che l'implementazione del metodo viene fornita dal runtime.

ManagedMask 4

Specifica se il metodo viene implementato nel codice gestito o non gestito.

Unmanaged 4

Specifica che il metodo viene implementato nel codice non gestito.

NoInlining 8

Specifica che il metodo non può essere inlined.

ForwardRef 16

Specifica che il metodo non è definito.

Synchronized 32

Specifica che il metodo è a thread singolo attraverso il corpo. I metodi statici (Shared in Visual Basic) bloccano il tipo, mentre i metodi di istanza si bloccano sull'istanza. È anche possibile usare l'istruzione C# lock o l'istruzione Visual Basic SyncLock a questo scopo.

NoOptimization 64

Specifica che il metodo non è ottimizzato dal compilatore JIT (Just-In-Time) o dalla generazione di codice nativa (vedere Ngen.exe) durante il debug di possibili problemi di generazione del codice.

PreserveSig 128

Specifica che la firma del metodo viene esportata esattamente come dichiarato.

AggressiveInlining 256

Specifica che il metodo deve essere inlined laddove possibile.

AggressiveOptimization 512

Specifica che il metodo deve essere ottimizzato quando possibile.

SecurityMitigations 1024

Questo membro è riservato per un uso futuro. È stato introdotto in .NET Framework 4.8.

InternalCall 4096

Specifica una chiamata interna.

Async 8192
MaxMethodImplVal 65535

Specifica un valore di controllo dell'intervallo.

Commenti

Gli attributi vengono combinati usando l'operazione OR bit per bit come indicato di seguito:

Maschere di implementazione del codice:

  • CodeTypeMask

  • IL

  • Native

  • OPTIL

  • Runtime

Maschere gestite:

  • ManagedMask

  • Unmanaged

  • Managed

Informazioni sull'implementazione e maschere di interoperabilità:

  • ForwardRef

  • PreserveSig

  • InternalCall

  • Synchronized

  • NoInlining

  • NoOptimization

  • MaxMethodImplVal

  • SecurityMitigations (disponibile a partire da .NET Framework 4.8.)

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.

Si applica a

Vedi anche