Freigeben über


OpCodes.Stloc Feld

Definition

Popt den aktuellen Wert vom Anfang des Auswertungsstapels und speichert ihn in der Liste der lokalen Variablen an einem angegebenen 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 MSIL-Assemblyformat (Microsoft Intermediate Language) der Anweisung sowie eine kurze Referenzzusammenfassung aufgeführt:

Format Assemblyformat BESCHREIBUNG
FE 0E <unsigned int16> stloc index Popt einen Wert aus dem Stapel und speichert ihn in der lokalen Variablen index.

Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:

  1. Ein Wert wird aus dem Stapel entfernt 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 mit 0 und höher 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 lokalen Werten, die einen ganzzahligen Wert enthalten, der kleiner als 4 Byte ist, schneidet den Wert ab, wenn er vom Stapel zur lokalen Variablen wechselt. Gleitkommawerte werden von ihrer nativen Größe (Typ F) auf die größe gerundet, die dem Argument zugeordnet ist.

Korrekte MSIL-Anweisungen (Microsoft Intermediate Language) erfordern, dass index es sich um einen gültigen lokalen Index handeln muss. Für die stloc Anweisung index muss im Bereich von 0 bis einschließlich 65534 liegen (insbesondere ist 65535 ungültig). Der Grund für das Ausschließen von 65535 ist pragmatisch: Wahrscheinliche Implementierungen verwenden eine 2-Byte-Ganzzahl, um sowohl den Index eines lokalen Als auch die Gesamtzahl der lokalen Werte für eine bestimmte Methode nachzuverfolgen. Wenn ein Index von 65535 als gültig festgelegt worden wäre, wäre eine breitere ganze Zahl erforderlich, um die Anzahl der lokalen Werte in einer solchen Methode nachzuverfolgen.

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

Gilt für: