OpCodes.Stelem_Ref Feld

Definition

Ersetzt das Arrayelement in einem bestimmten Index durch den Objekt ref-Wert (Typ O) im Auswertungsstapel.

public: static initonly System::Reflection::Emit::OpCode Stelem_Ref;
public static readonly System.Reflection.Emit.OpCode Stelem_Ref;
 staticval mutable Stelem_Ref : System.Reflection.Emit.OpCode
Public Shared ReadOnly Stelem_Ref 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
A2 stelem.ref Ersetzt ein Arrayelement am angegebenen Index durch den ref Wert (Typ O) im Stapel.

Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:

  1. Ein Objektverweis auf ein Array wird arrayauf den Stapel verschoben.

  2. Ein gültiger Index für ein Element in array wird auf den Stapel verschoben.

  3. Ein Wert wird auf den Stapel verschoben.

  4. Der Wert, der Index und der Arrayverweis werden aus dem Stapel angezeigt; der Wert wird in das Arrayelement im angegebenen Index eingefügt.

Die stelem.ref Anweisung ersetzt den Wert des Elements am angegebenen Index im eindimensionalen Array array durch den ref (Typ O)-Wert, der auf den Stapel verschoben wird.

Arrays sind Objekte und werden daher durch einen Wert vom Typ Odargestellt. Der Index ist typ native int.

Beachten Sie, dass stelem.ref der angegebene Wert implizit in den Elementtyp array umgibt, bevor der Wert dem Arrayelement zugewiesen wird. Diese Umwandlung kann fehlschlagen, auch für überprüften Code. So kann die stelem.ref Anweisung werfen InvalidCastException. Bei eindimensionalen Arrays, die nicht nullbasiert sind, und für multidimensionale Arrays stellt die Array Klasse eine SetValue Methode bereit.

NullReferenceException wird ausgelöst, wenn array es sich um einen Nullverweis handelt.

IndexOutOfRangeException wird ausgelöst, wenn index es negativ ist oder größer als die Grenze von array.

ArrayTypeMismatchException wird ausgelöst, wenn array keine Elemente des erforderlichen Typs enthalten sind.

Die folgende Emit Methodenüberladung kann den stelem.ref Opcode verwenden:

Gilt für: