OpCodes.Ldind_Ref Fält

Definition

Läser in en objektreferens som en typ O (objektreferens) till utvärderingsstacken indirekt.

public: static initonly System::Reflection::Emit::OpCode Ldind_Ref;
public static readonly System.Reflection.Emit.OpCode Ldind_Ref;
 staticval mutable Ldind_Ref : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_Ref 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
50 ldind.ref Läser in objektreferensen på adressen addr till stacken som en typ O

Stackens övergångsbeteende i sekventiell ordning är:

  1. En adress skickas till stacken.

  2. Adressen poppas från stacken. objektreferensen som finns på adressen hämtas.

  3. Den hämtade referensen skickas till stacken.

Instruktionen ldind.ref läser indirekt in objektet som refererar till den angivna adressen (av typen native int, &, eller *) till stacken som typ O.

ldind Alla instruktioner är genvägar för en Ldobj instruktion som anger motsvarande inbyggda värdeklass.

Observera att heltalsvärden på mindre än 4 byte utökas till int32 (inte native int) när de läses in i utvärderingsstacken. Flyttalsvärden konverteras till F typ när de läses in på utvärderingsstacken.

Korrekt formade Microsoft mellanliggande språk (MSIL) säkerställer att instruktionerna ldind används på ett sätt som överensstämmer med typen av pekare.

Adressen som först push-överfördes till stacken måste justeras efter den naturliga storleken på objekt på datorn eller så kan en NullReferenceException inträffa (se prefixinstruktionen Unaligned för förebyggande åtgärder). Resultatet av alla MSIL-instruktioner som returnerar adresser (till exempel Ldloca och Ldarga) justeras på ett säkert sätt. För datatyper som är större än 1 byte är byteordningen beroende av målprocessorn. Kod som är beroende av byteordning kanske inte körs på alla plattformar.

NullReferenceException kan genereras om en ogiltig adress identifieras.

Följande Emit metodöverlagring kan använda ldind.ref opcode:

Gäller för