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 

欄位值

備註

下表列出指令的十六進位和 Microsoft 中繼語言 (MSIL) 元件格式,以及簡短的參考摘要:

格式 元件格式 Description
A2 stelem.ref 將所提供索引上的陣列元素取代為 ref 堆疊上 (類型 O) 的值。

堆疊轉換行為依循序順序為:

  1. 數位的 array物件參考會推送至堆疊。

  2. array 元素的有效索引會推送至堆疊。

  3. 值會推送至堆疊。

  4. 值、索引和陣列參考會從堆疊中彈出;值會放入指定索引處的陣列元素中。

指令 stelem.ref 會將一維陣列 arrayref 中提供索引處的專案值取代為推送至堆疊的 (類型 O) 值。

數位是物件,因此由類型的 O值表示。 索引的類型為 native int

請注意,在將值指派給陣列元素之前, stelem.ref 隱含地將所提供的值轉換成的元素類型 array 。 即使已驗證的程式代碼,此轉換仍可能會失敗。 因此, stelem.ref 指令可以擲回 InvalidCastException。 對於不是以零為基底且針對多維度陣列的一維陣列,類別 Array 會提供 SetValue 方法。

NullReferenceException 如果 array 為 Null 參考,則會擲回 。

IndexOutOfRangeException 如果 index 為負數,或大於 的 array系結,則會擲回 。

ArrayTypeMismatchException 如果 array 不儲存必要類型的專案,則會擲回 。

下列 Emit 方法多載可以使用 stelem.ref opcode:

適用於