CIL フォーマット
A4 (T)
/ stelem (typeTok)
9C
/ stelem.i1
9D
/ stelem.i2
9E
/ stelem.i4
9F
/ stelem.i8
A0
/ stelem.r4
A1
/ stelem.r8
9B
/ stelem.i
A2
/ stelem.ref
スタック
..., array, index, value → ...
詳細
0 ベース 1 次元の配列 array の index 番目の値を value で置き換えます。 index は native int もしくは int32 です。 ldelem (typeTok) では value の型は typeTok で示される型です。 ldelem.<type> では value の型は命令で示される型です。
stelem.ref は暗黙的に value を array の要素の型にキャストします。 このキャストは検証済みのコードであっても失敗する可能性があります。 キャストに失敗した場合、stelem.ref は ArrayTypeMismatchException をスローします。
0 ベースでない 1 次元配列や 0 ベースの多次元配列には、 配列クラスの StoreElement メソッドを使用します。
Exception
array が null の場合、 NullReferenceException が発生します。
index が負もしくは array の境界よりも大きい場合、 IndexOutOfRangeException が発生します。
array が要求された型を保持していない場合、 ArrayTypeMismatchException が発生します。