Condividi tramite


OpCodes.Initobj Campo

Definizione

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, è:

  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 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:

Si applica a