OpCodes.Newobj フィールド
アセンブリ: mscorlib (mscorlib.dll 内)


命令の 16 進数の形式、MSIL (Microsoft Intermediate Language) アセンブリ形式、および簡単な説明の一覧を次の表に示します。
newobj 命令は、新しいオブジェクトまたは値型の新しいインスタンスを作成します。Ctor は、呼び出すコンストラクタの名前、クラス、およびシグネチャを示すメタデータ トークン (コンストラクタとしてマークしておく必要がある methodref または methoddef) です。
newobj 命令は、ctor に関連付けられたクラスの新しいインスタンスを割り当て、必要に応じて、新しいインスタンスのすべてのフィールドを適切な型の 0 に初期化するか、または null 参照にします。次に、指定の引数と新しく作成されたインスタンスを使用して、コンストラクタ ctor を呼び出します。コンストラクタが呼び出されると、初期化されたオブジェクト参照 (O 型) がスタックにプッシュされます。
コンストラクタの視点から見ると、初期化されていないオブジェクトは引数 0 であり、newobj に渡されたその他の引数が順番に続きます。
インデックス番号が 0 から始まるすべての 1 次元配列は、newobj ではなく、Newarr を使用して作成されます。これに対し、その他のすべての配列 (多次元配列またはインデックス番号が 0 以外から始まる 1 次元配列) は、newobj を使用して作成されます。
通常、値型は、newobj を使用して作成されることはありません。値型は、通常、newarr (インデックス番号が 0 から始まる、1 次元配列の場合) を使用して引数またはローカル変数として、あるいはオブジェクトのフィールドとして割り当てられます。割り当てられると、値型は Initobj を使用して初期化されます。ただし、newobj 命令を使用して、値型の新しいインスタンスをスタック上に作成し、それを引数として渡したり、ローカルに格納したりできます。
要求を満たすにはメモリが不足している場合は、OutOfMemoryException がスローされます。
指定した名前、クラス、およびシグネチャを持つコンストラクタ メソッド ctor が見つからなかった場合は、MissingMethodException がスローされます。これは、通常、実行時ではなく、MSIL (Microsoft Intermediate Language) 命令がネイティブ コードに変換されるときに検出されます。
newobj オペコードを使用できる Emit メソッド オーバーロードを次に示します。
-
ILGenerator.Emit(OpCode, ConstructorInfo)

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からOpCodes.Newobj フィールドを検索する場合は、下記のリンクをクリックしてください。

- OpCodes.Newobj フィールドのページへのリンク