OpCodes.Stelem_Ref 欄位
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在評估堆疊上,將給定索引的陣列元素替換為物件 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)。 |
堆疊的過渡行為依序為:
將一個指向陣列
array的物件參考 ,推送到堆疊中。一個有效的
array元素索引會被推送到堆疊上。一個值會被推入堆疊。
從堆疊中彈出值、索引和陣列參考;該值會被放入陣列元素中給定的索引。
指令會 stelem.ref 將一維陣列 array 中所提供索引的元素值替換為 ref 推入堆疊的(型別 O)值。
陣列是物件,因此以型別 O為 的值表示。 索引為類型 native int。
請注意 stelem.ref ,在將該值指派給陣列元素之前,會隱含地將所提供的值鑄造成元素類型 array 。 這個鑄造可能會失敗,即使是經過驗證的程式碼。 因此指令 stelem.ref 可以拋出 InvalidCastException。 對於非零基的一維陣列,以及多維陣列,類別 Array 提供了方法 SetValue 。
NullReferenceException 若 array 為空參考,則拋出。
IndexOutOfRangeException 若 index 為負值,或大於 的 array界,則為拋出。
ArrayTypeMismatchException 若 array 不包含所需類型的元素,則被拋出。
以下 Emit 方法的超載可使用操作 stelem.ref 碼: