特定の型の要素を持つ、インデックス番号が 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 型の要素の新しい配列を作成します。 |
スタックの遷移動作を順番に示すと、次のようになります。
- 配列内の要素数がスタックにプッシュされます。
- スタックから要素数がポップされ、配列が作成されます。
- 新しい配列へのオブジェクト参照がスタックにプッシュされます。
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 ファミリ