Freigeben über


OpCodes.Initobj Feld

Definition

Initialisiert jedes Feld des Werttyps bei einer angegebenen Adresse auf einen Nullverweis oder einen 0 des entsprechenden Grundtyps.

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 

Feldwert

Hinweise

In der folgenden Tabelle sind das Hexadezimal- und das MSIL-Assemblyformat (Microsoft Intermediate Language) sowie eine kurze Referenzzusammenfassung aufgeführt:

Format Assemblyformat Beschreibung
FE 15 <T> initobj typeTok Initialisiert einen Werttyp.

Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:

  1. Die Adresse des zu initialisierenden Werttyps wird auf den Stapel verschoben.

  2. Die Adresse wird aus dem Stapel eingetaucht; Der Werttyp an der angegebenen Adresse wird als Typ typeTokinitialisiert.

Die initobj Anweisung initialisiert jedes Feld des Werttyps, der durch die Pushadresse (vom Typ native int, &oder *) angegeben wird, auf einen Nullverweis oder einen 0 des entsprechenden Grundtyps. Nachdem diese Methode aufgerufen wurde, kann die Instanz für eine Konstruktormethode aufgerufen werden. Wenn typeTok ein Verweistyp ist, hat diese Anweisung die gleiche Auswirkung wie ldnull gefolgt von stind.ref.

Im Gegensatz zu Newobjruft initobj die Konstruktormethode nicht auf. Initobj ist für die Initialisierung von Werttypen vorgesehen, während newobj zum Zuordnen und Initialisieren von Objekten verwendet wird.

Die folgende Emit Methodenüberladung kann den initobj opcode verwenden:

Gilt für: