次の方法で共有


OpCodes.Newarr フィールド

特定の型の要素を持つ、インデックス番号が 0 から始まる新しい 1 次元配列へのオブジェクト参照を評価スタックにプッシュします。

Public Shared ReadOnly Newarr As OpCode
[C#]
public static readonly OpCode Newarr;
[C++]
public: static OpCode Newarr;
[JScript]
public static var Newarr : OpCode;

解説

命令の 16 進数の形式、MSIL (Microsoft Intermediate Language) アセンブリ形式、および簡単な説明の一覧を次の表に示します。

形式 アセンブリ形式 説明
8D < T > newarr etype etype 型の要素の新しい配列を作成します。

スタックの遷移動作を順番に示すと、次のようになります。

  1. 配列内の要素数がスタックにプッシュされます。
  2. スタックから要素数がポップされ、配列が作成されます。
  3. 新しい配列へのオブジェクト参照がスタックにプッシュされます。

newarr 命令は、 etype 型 (型を記述するメタデータ トークン) の要素を持つ、インデックス番号が 0 から始まる新しい 1 次元配列に、オブジェクト参照 (O 型) をプッシュします。新しい配列の要素数は、 natural int として指定する必要があります。有効な配列インデックスの範囲は、0 ~ 要素の最大数 - 1 です。

配列の要素は、値型を含む任意の型にすることができます。

インデックス番号が 0 から始まる、数値の 1 次元配列は、適切な値型 (Int32 など) を参照しているメタデータ トークンを使用して作成されます。配列の要素は、適切な型の 0 に初期化されます。

インデックス番号が 0 以外から始まる 1 次元配列および多次元配列は、 newarr ではなく Newobj を使用して作成されます。通常は、.NET Framwork の Array クラスのメソッドを使用して作成されます。

要求を満たすにはメモリが不足している場合は、 OutOfMemoryException がスローされます。

numElems が 0 未満の場合は、 OverflowException がスローされます。

newarr オペコードを使用できる Emit コンストラクタ オーバーロードを次に示します。

  • ILGenerator.Emit(OpCode, Type)

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

OpCodes クラス | OpCodes メンバ | System.Reflection.Emit 名前空間