OpCodes.Stelem_Ref Feld
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
Ein Objektverweis auf ein Array wird
array
auf den Stapel übertragen.Ein gültiger Index für ein Element in
array
wird auf den Stapel verschoben.Ein Wert wird auf den Stapel gepusht.
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 O
dargestellt. 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 array
ist.
ArrayTypeMismatchException wird ausgelöst, wenn array
keine Elemente des erforderlichen Typs enthalten sind.
Die folgende Emit Methodenüberladung kann den stelem.ref
opcode verwenden: