OpCodes.Initobj Feld
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
Die Adresse des zu initialisierenden Werttyps wird auf den Stapel verschoben.
Die Adresse wird aus dem Stapel eingetaucht; Der Werttyp an der angegebenen Adresse wird als Typ
typeTok
initialisiert.
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: