OpCodes.Initobj Campo
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.
Inizializza ogni campo del tipo valore in corrispondenza di un indirizzo specificato a un riferimento Null o a un valore 0 del 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 di riferimento:
Formato | Formato assembly | Descrizione |
---|---|---|
FE 15 <T > |
initobj
typeTok
|
Inizializza un tipo di valore. |
Il comportamento transitorio dello stack, in ordine sequenziale, è:
L'indirizzo del tipo di valore da inizializzare viene inserito nello stack.
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 push (di tipo native int
, &
o *
) a un riferimento Null o a un 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 gli oggetti.
L'overload del metodo Emit seguente può usare il codice operativo initobj
: