指定のインデックス位置にある配列要素をオブジェクト参照値 (O 型) に置き換えます。
Public Shared ReadOnly Stelem_Ref As OpCode
[C#]
public static readonly OpCode Stelem_Ref;
[C++]
public: static OpCode Stelem_Ref;
[JScript]
public static var Stelem_Ref : OpCode;
解説
命令の 16 進数の形式、MSIL (Microsoft Intermediate Language) アセンブリ形式、および簡単な説明の一覧を次の表に示します。
形式 | アセンブリ形式 | 説明 |
---|---|---|
A2 | stelem.ref | 提供されたインデックス位置にある配列要素をスタックの ref 値 (O 型) に置き換えます。 |
スタックの遷移動作を順番に示すと、次のようになります。
- 配列へのオブジェクト参照である array がスタックにプッシュされます。
- array 内の要素への有効なインデックスがスタックにプッシュされます。
- 値がスタックにプッシュされます。
- 値、インデックス、および配列参照がスタックからポップされます。値は、指定のインデックスの配列要素に格納されます。
stelem.ref 命令は、1 次元配列 array 内の提供されたインデックス位置にある要素の値をスタックにプッシュされた ref (O 型) 値に置き換えます。
配列はオブジェクトであるため、 O 型の値によって表されます。インデックスは natural int 型です。
stelem.ref は、配列要素に値を割り当てる前に、提供された値を array 要素型に暗黙的にキャストします。このキャストは、検査されたコードであっても、失敗する場合があります。したがって、 stelem.ref 命令が InvalidCastException をスローすることがあります。インデックス番号が 0 以外で始まる 1 次元配列および多次元配列の場合は、 Array クラスが SetValue メソッドを提供します。
array が null 参照である場合は、 NullReferenceException がスローされます。
index が負の値である場合、または array の上限を超える場合は、 IndexOutOfRangeException がスローされます。
array が必要な型の要素を保持していない場合は、 ArrayTypeMismatchException がスローされます。
stelem.ref オペコードを使用できる Emit コンストラクタ オーバーロードを次に示します。
- ILGenerator.Emit(OpCode)
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ