OpCodes.Ldind_I Fält

Definition

Läser in ett värde av typen native int som en native int på utvärderingsstacken indirekt.

public: static initonly System::Reflection::Emit::OpCode Ldind_I;
public static readonly System.Reflection.Emit.OpCode Ldind_I;
 staticval mutable Ldind_I : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_I 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
4D ldind.i native int Läser in värdet på adressen addr till stacken som en native int.

Stackens övergångsbeteende i sekventiell ordning är:

  1. En adress skickas till stacken.

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

  3. Det hämtade värdet skickas till stacken.

Instruktionen ldind.i läser indirekt in ett native int värde från den angivna adressen (av typen native int, &, eller *) till stacken som en native int.

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.i opcode:

Gäller för