OpCodes.Stloc Feld

Definition

Pops the current value from the top of the evaluation stack and stores it in the local variable list at a specified index.

public: static initonly System::Reflection::Emit::OpCode Stloc;
public static readonly System.Reflection.Emit.OpCode Stloc;
 staticval mutable Stloc : System.Reflection.Emit.OpCode
Public Shared ReadOnly Stloc As OpCode 

Feldwert

Hinweise

In der folgenden Tabelle sind das Hexadezimal- und Microsoft MSIL-Assemblyformat (Intermediate Language) der Anweisung zusammen mit einer kurzen Referenzzusammenfassung aufgeführt:

Format Assemblyformat Description
FE 0E <unsigned int16> stloc index Pops a value from the stack and stores it in local variable index.

Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:

  1. Ein Wert wird vom Stapel abgesetzt und in der lokalen Variablen indexplatziert.

Die stloc Anweisung füllt den obersten Wert aus dem Auswertungsstapel und verschiebt ihn in die lokale Variablennummer index, wobei lokale Variablen 0 weiter nummeriert werden. Der Typ des Werts muss mit dem Typ der lokalen Variablen übereinstimmen, wie in der lokalen Signatur der aktuellen Methode angegeben.

Das Speichern in Lokalien, die einen ganzzahligen Wert enthalten, der kleiner als 4 Byte ist, schneidet den Wert ab, während er vom Stapel zur lokalen Variablen wechselt. Gleitkommawerte werden von ihrer systemeigenen Größe (Typ F) auf die größe gerundet, die dem Argument zugeordnet ist.

Korrekte Microsoft MSIL-Anweisungen (Intermediate Language) erfordern, dass index ein gültiger lokaler Index sein. Für die stloc Anweisung index muss der Bereich 0 bis einschließlich 65534 liegen (insbesondere 65535 ist ungültig). Der Grund für die Berücksichtigung von 65535 ist pragmatisch: Wahrscheinlich werden Implementierungen eine 2-Byte-Ganzzahl verwenden, um sowohl den Index eines lokalen Benutzers als auch die Gesamtanzahl der Lokalen für eine bestimmte Methode nachzuverfolgen. Wenn ein Index von 65535 gültig gemacht wurde, würde eine breitere ganze Zahl erforderlich sein, um die Anzahl der Lokalen in einer solchen Methode nachzuverfolgen.

Die folgenden Emit Methodenüberladungen können den stloc Opcode verwenden:

Gilt für: