OpCodes.Stloc-Feld
Holt den aktuellen Wert von der obersten Position des Auswertungsstapels und speichert ihn in der Liste der lokalen Variablen am angegebenen Index.
Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Shared ReadOnly Stloc As OpCode
'Usage
Dim value As OpCode
value = OpCodes.Stloc
public static readonly OpCode Stloc
public:
static initonly OpCode Stloc
public static final OpCode Stloc
public static final var Stloc : OpCode
Hinweise
In der folgenden Tabelle werden das hexadezimale und das Assemblyformat der MSIL (Microsoft Intermediate Language) jeweils mit einer Kurzreferenz aufgeführt:
Format |
Assemblyformat |
Beschreibung |
---|---|---|
FE 0E < unsigned int16 > |
stloc index |
Holt einen Wert vom Stapel und speichert ihn in der lokalen Variablen index. |
Im Stapel laufen die folgenden Aktionen in der angegebenen Reihenfolge ab:
- Ein Wert wird vom Stapel geholt und in der lokalen Variablen index abgelegt.
Die stloc-Anweisung holt den obersten Wert vom Anweisungsstapel und verschiebt ihn in die lokale Variable mit der Nummer index, wobei die Nummerierung lokaler Variablen bei 0 beginnt. Der Typ des Werts muss mit dem Typ der lokalen Variablen übereinstimmen, wie durch die lokale Signatur der aktuellen Methode angegeben.
Beim Speichern in lokalen Variablen, die einen Ganzzahlwert enthalten, dessen Wert weniger als 4 Bytes lang ist, wird der Wert beim Verschieben vom Stapel in die lokale Variable gekürzt. Gleitkommawerte werden von ihrer systemeigenen Größe (Typ F) auf die dem Argument zugeordnete Größe gerundet.
Für ordnungsgemäße MSIL-Anweisungen (Microsoft Intermediate Language) ist es erforderlich, dass index ein gültiger lokaler Index ist. Für die stloc-Anweisung muss index im Bereich von 0 bis einschließlich 65.534 liegen (insbesondere 65.535 ist kein gültiger Wert). Index 65.535 ist aus pragmatischen Gründen ausgeschlossen, da mögliche Implementierungen mit einer 2-Byte-Ganzzahl sowohl den Index einer lokalen Variablen als auch die Gesamtanzahl der lokalen Variablen für eine angegebene Methode verfolgen. Bei einem gültigen Index von 65.535 wäre eine umfassendere ganze Zahl für die Verfolgung der Anzahl von lokalen Variablen in einer solchen Methode erforderlich.
Die folgenden Überladungen der Emit-Methode verwenden den stloc-Opcode:
ILGenerator.Emit(OpCode, LocalBuilder)
ILGenerator.Emit(OpCode, short)
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
OpCodes-Klasse
OpCodes-Member
System.Reflection.Emit-Namespace