OpCodes.Initobj Campo
In questo articolo
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
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
:
Si applica a
Prodotto | Versioni |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: