OpCodes.Stelem_Ref フィールド

定義

指定のインデックス位置にある配列要素をオブジェクト参照値 (O 型) に置き換えます。

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 

フィールド値

注釈

次の表に、命令の 16 進数と Microsoft Intermediate Language (MSIL) アセンブリ形式と、簡単なリファレンスの概要を示します。

形式 アセンブリ形式 説明
A2 stelem.ref 指定されたインデックスにある配列要素を、スタック上の ref 値 (型 O) に置き換えます。

スタック遷移の動作は、順番に次のようになります。

  1. 配列 へのオブジェクト参照 ( array) がスタックにプッシュされます。

  2. array の要素に対する有効なインデックスがスタックにプッシュされます。

  3. 値がスタックにプッシュされます。

  4. 値、インデックス、配列参照がスタックからポップされます。値は、指定されたインデックスの配列要素に格納されます。

命令は stelem.ref 、1 次元配列 arrayref 内の指定されたインデックスにある要素の値を、スタックにプッシュされた (型 O) 値に置き換えます。

配列はオブジェクトであるため、 型 Oの値で表されます。 インデックスは 型 native intです。

stelem.ref配列要素に値を割り当てる前に、指定された値を のarray要素型に暗黙的にキャストすることに注意してください。 検証済みコードの場合でも、このキャストは失敗する可能性があります。 したがって、命令は を stelem.ref スロー InvalidCastExceptionできます。 0 から始まる配列ではない 1 次元配列と多次元配列の場合、 Array クラスは メソッドを SetValue 提供します。

NullReferenceException が null 参照の場合 array は がスローされます。

IndexOutOfRangeExceptionが負の場合、または のarray境界より大きい場合indexは がスローされます。

ArrayTypeMismatchException が必要な型の要素を保持していない場合 array は がスローされます。

Emit のメソッド オーバーロードでは、オペコードを stelem.ref 使用できます。

適用対象