OpCodes.Stelem_Ref 欄位

定義

在評估堆疊上,將給定索引的陣列元素替換為物件 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)組合格式,並附有簡短參考摘要:

Format 組裝格式 Description
A2 stelem.ref 將所提供索引中的陣列元素替換為 ref 堆疊上的值(型別 O)。

堆疊的過渡行為依序為:

  1. 將一個指向陣列 array的物件參考 ,推送到堆疊中。

  2. 一個有效的 array 元素索引會被推送到堆疊上。

  3. 一個值會被推入堆疊。

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

指令會 stelem.ref 將一維陣列 array 中所提供索引的元素值替換為 ref 推入堆疊的(型別 O)值。

陣列是物件,因此以型別 O為 的值表示。 索引為類型 native int

請注意 stelem.ref ,在將該值指派給陣列元素之前,會隱含地將所提供的值鑄造成元素類型 array 。 這個鑄造可能會失敗,即使是經過驗證的程式碼。 因此指令 stelem.ref 可以拋出 InvalidCastException。 對於非零基的一維陣列,以及多維陣列,類別 Array 提供了方法 SetValue

NullReferenceExceptionarray 為空參考,則拋出。

IndexOutOfRangeExceptionindex 為負值,或大於 的 array界,則為拋出。

ArrayTypeMismatchExceptionarray 不包含所需類型的元素,則被拋出。

以下 Emit 方法的超載可使用操作 stelem.ref 碼:

適用於