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 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:
Ein Objektverweis auf ein Array wird
arrayauf den Stapel verschoben.Ein gültiger Index für ein Element in
arraywird auf den Stapel verschoben.Ein Wert wird auf den Stapel verschoben.
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: