語言

OpCodes.Newarr 欄位

定義

將物件參考推送到一個新的零基、一維陣列,該陣列的元素屬於特定型態,並被推送到評估堆疊中。

public: static initonly System::Reflection::Emit::OpCode Newarr;
public static readonly System.Reflection.Emit.OpCode Newarr;
 staticval mutable Newarr : System.Reflection.Emit.OpCode
Public Shared ReadOnly Newarr As OpCode 

欄位值

備註

下表列出指令的十六進位及 Microsoft 中介語言(MSIL)組合格式,並附有簡短參考摘要:

Format 組裝格式 Description
8D <T> 紐瓦爾 etype 建立一個新的陣列,元素型別為 etype。

堆疊的過渡行為依序為:

  1. 陣列中的元素數量會被推入堆疊。

  2. 從堆疊中彈出元素數量,陣列隨即建立。

  3. 將新陣列的物件參考推送到堆疊中。

指令會 newarr 將物件參考(型別 O)推送到一個新的零基一維陣列,該陣列的元素為型 etype 別(描述該型別的元資料標記)。 新陣列中的元素數應以 . 來指定 native int。 有效的陣列索引範圍從零到最大元素數減一。

陣列的元素可以是任何型別,包括值型別。

以零為基礎、一維的數字陣列是利用參考適當值型別的Int32元資料標記(如此類推)建立的。 陣列中的元素會被初始化為適當類型的 0。

非零基的一維陣列與多維陣列則使用 Newobj 而非 newarr。 更常見的是,它們是利用 .NET 框架中 Array 類別的方法來建立的。

OutOfMemoryException 若記憶體不足以滿足請求,則會拋出 。

OverflowException 若 numElems 小於 0,則 擲出。

以下 Emit 方法的超載可使用操作 newarr 碼:

適用於