OpCodes.Initobj Fält
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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:
Adressen till den värdetyp som ska initieras skickas till stacken.
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: