OpCodes.Initobj Campo

Definizione

Inizializza ciascun campo del tipo di valore in corrispondenza di un indirizzo specifico su un riferimento Null o uno 0 di tipo primitivo appropriato.

public: static initonly System::Reflection::Emit::OpCode Initobj;
public static readonly System.Reflection.Emit.OpCode Initobj;
 staticval mutable Initobj : System.Reflection.Emit.OpCode
Public Shared ReadOnly Initobj As OpCode 

Valore del campo

Commenti

La tabella seguente elenca il formato di assembly Esadecimale e MSIL (Microsoft Intermediate Language), insieme a un breve riepilogo dei riferimenti:

Formato Formato assembly Descrizione
FE 15 <T> initobj typeTok Inizializza un tipo valore.

Il comportamento di transizione dello stack, in ordine sequenziale, è:

  1. L'indirizzo del tipo di valore da inizializzare viene inserito nello stack.

  2. L'indirizzo viene estratto dallo stack; il tipo di valore in corrispondenza dell'indirizzo specificato viene inizializzato come tipo typeTok.

L'istruzione initobj inizializza ogni campo del tipo di valore specificato dall'indirizzo di cui è stato eseguito il push (di tipo native int, &o *) a un riferimento Null o a 0 del tipo primitivo appropriato. Dopo aver chiamato questo metodo, l'istanza è pronta per chiamare un metodo del costruttore. Se typeTok è un tipo riferimento, questa istruzione ha lo stesso effetto di ldnull seguito da stind.ref.

A differenza di Newobj, initobj non chiama il metodo del costruttore. Initobj è destinato all'inizializzazione dei tipi valore, mentre newobj viene usato per allocare e inizializzare oggetti.

L'overload del metodo seguente Emit può usare il initobj codice operativo:

Si applica a