OpCodes.Initobj Feld

Definition

Initialisiert alle Felder des Werttyps an einer angegebenen Adresse mit einem NULL-Verweis oder dem Wert 0 des entsprechenden primitiven Typs.

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 MSIL-Assemblyformat (Microsoft Intermediate Language) der Anweisung sowie eine kurze Referenzzusammenfassung aufgeführt:

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

Das Stapelübergangsverhalten in sequenzieller Reihenfolge lautet:

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

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

Die initobj Anweisung initialisiert jedes Feld des Werttyps, der von der pushten Adresse (vom Typ native int, &oder *) angegeben wird, in einen NULL-Verweis oder eine 0 des entsprechenden primitiven Typs. Nachdem diese Methode aufgerufen wurde, ist die instance bereit für den Aufruf einer Konstruktormethode. Wenn typeTok es sich um einen Verweistyp handelt, hat diese Anweisung die gleiche Auswirkung wie ldnull gefolgt von stind.ref.

initobj Im Gegensatz wird Newobjdie Konstruktormethode nicht aufgerufen. Initobj dient zum Initialisieren von Werttypen, während newobj zum Zuweisen und Initialisieren von Objekten verwendet wird.

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

Gilt für: