Freigeben über


OpCodes.Initobj-Feld

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

Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared ReadOnly Initobj As OpCode
'Usage
Dim value As OpCode

value = OpCodes.Initobj
public static readonly OpCode Initobj
public:
static initonly OpCode Initobj
public static final OpCode Initobj
public static final var Initobj : OpCode

Hinweise

In der folgenden Tabelle werden das hexadezimale und das Assemblyformat der MSIL (Microsoft Intermediate Language) jeweils mit einer Kurzreferenz aufgeführt:

Format

Assemblyformat

Beschreibung

FE 15 < T >

initobj classTok

Initialisiert einen Werttyp.

Im Stapel laufen die folgenden Aktionen in der angegebenen Reihenfolge ab:

  1. Die Adresse eines zu initialisierenden Objekts wird auf dem Stapel abgelegt.

  2. Die Adresse wird vom Stapel geholt. Das Werttypobjekt an der angegebenen Adresse wird mit dem Typ classTok initialisiert.

Die initobj-Anweisung initialisiert alle Felder des Objekts, dessen Adresse sich auf dem Stapel befindet (Typ natural int, & oder *), mit einem NULL-Verweis oder dem Wert 0 des entsprechenden primitiven Typs. Nach dem Aufruf dieser Methode kann die Konstruktormethode der Instanz aufgerufen werden. Wenn die Adresse kein Zeiger auf eine Instanz der Klasse ist, die durch classTok dargestellt wird, oder classTok keinen Werttyp darstellt, ist das Verhalten undefiniert.

Im Gegensatz zu Newobj wird die Konstruktormethode nicht von initobj aufgerufen. Initobj ist zum Initialisieren von Werttypen vorgesehen, wohingegen newobj zum Reservieren und Initialisieren von Objekten verwendet wird.

Die folgende Überladung der Emit-Methode verwendet den initobj-Opcode:

  • ILGenerator.Emit(OpCode, Type)

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

OpCodes-Klasse
OpCodes-Member
System.Reflection.Emit-Namespace