Freigeben über


OpCodes.Stelem_Ref Feld

Definition

Ersetzt das Arrayelement am angegebenen Index durch den Wert des Objektverweises (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 MSIL-Assemblyformat (Microsoft Intermediate Language) der Anweisung sowie eine kurze Referenzzusammenfassung aufgeführt:

Format Assemblyformat BESCHREIBUNG
A2 stelem.ref Ersetzt ein Arrayelement am angegebenen Index durch den ref Wert (Typ O) auf dem Stapel.

Das Stapelübergangsverhalten in sequenzieller Reihenfolge lautet:

  1. Ein Objektverweis auf ein Array wird arrayauf den Stapel übertragen.

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

  3. Ein Wert wird auf den Stapel gepusht.

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

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

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

Beachten Sie, dass stelem.ref der angegebene Wert implizit in den Elementtyp von array umgewandelt wird, bevor der Wert dem Arrayelement zugewiesen wird. Diese Umwandlung kann auch bei überprüftem Code fehlschlagen. Daher kann die stelem.ref Anweisung auslösen InvalidCastException. Für eindimensionale Arrays, die nicht nullbasiert sind, und für mehrdimensionale Arrays stellt die Array -Klasse eine -Methode bereit SetValue .

NullReferenceException wird ausgelöst, wenn array ein NULL-Verweis ist.

IndexOutOfRangeException wird ausgelöst, wenn index negativ oder größer als der Grenzwert von arrayist.

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: