OpCodes.Initobj フィールド

定義

指定したアドレスにある値型の各フィールドを、null 参照または適切なプリミティブ型の 0 に初期化します。

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

フィールド値

注釈

次の表に、命令の 16 進数および Microsoft Intermediate Language (MSIL) アセンブリ形式と、簡単なリファレンス概要を示します。

フォーマット アセンブリ形式 Description
FE 15 <T> initobj typeTok 値型を初期化します。

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

  1. 初期化する値型のアドレスがスタックにプッシュされます。

  2. アドレスはスタックからポップされます。指定したアドレスの値型は、型 typeTokとして初期化されます。

initobj命令は、プッシュされたアドレスで指定された値型の各フィールド (native int&、または*) を null 参照または適切なプリミティブ型の 0 に初期化します。 このメソッドが呼び出されると、インスタンスはコンストラクター メソッドを呼び出す準備が整います。 typeTokが参照型の場合、この命令は、ldnullの後にstind.refが続くのと同じ効果を持ちます。

Newobjとは異なり、initobjはコンストラクター メソッドを呼び出しません。 Initobj は値型の初期化を目的としていますが、 newobj はオブジェクトの割り当てと初期化に使用されます。

次の Emit メソッドオーバーロードでは、 initobj オペコードを使用できます。

適用対象