Exportieren (0) Drucken
Alle erweitern
Erweitern Minimieren

OpCodes.Stloc-Feld

Aktualisiert: November 2007

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)

public static readonly OpCode Stloc
public static final OpCode Stloc
public static final var Stloc : OpCode

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:

  1. 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)

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0, 1.1, 1.0

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft