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 Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:

  1. Die Adresse des zu initialisierenden Werttyps wird in 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 durch die gepushte 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 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 dient zum Initialisieren von Werttypen, während newobj zum Zuordnen und Initialisieren von Objekten verwendet wird.

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

Gilt für: