OpCodes.Initobj Fält

Definition

Initierar varje fält av värdetypen vid en angiven adress till en nullreferens eller 0 av lämplig primitiv typ.

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 

Fältvärde

Kommentarer

I följande tabell visas instruktionens sammansättningsformat för hexadecimalt och Microsoft mellanliggande språk (MSIL), tillsammans med en kort referenssammanfattning:

Format Sammansättningsformat Description
FE 15 <T> initobj typeTok Initierar en värdetyp.

Stackens övergångsbeteende i sekventiell ordning är:

  1. Adressen till den värdetyp som ska initieras skickas till stacken.

  2. Adressen poppas från stacken. värdetypen på den angivna adressen initieras som typ typeTok.

Instruktionen initobj initierar varje fält av den värdetyp som anges av den push-adressen (av typen native int, &eller *) till en nullreferens eller 0 av lämplig primitiv typ. När den här metoden har anropats är instansen redo för att en konstruktormetod ska anropas. Om typeTok är en referenstyp har den här instruktionen samma effekt som ldnull följt av stind.ref.

Till skillnad från Newobjanropar initobj inte konstruktormetoden. Initobj är avsedd för att initiera värdetyper, medan newobj används för att allokera och initiera objekt.

Följande Emit metodöverlagring kan använda initobj opcode:

Gäller för