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.

C#
public static readonly System.Reflection.Emit.OpCode Initobj;

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

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