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) アセンブリ形式と、簡単なリファレンス概要を示します。

形式 アセンブリ形式 形容
FE 15 <T> initobj typeTok 値型を初期化します。

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

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

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

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

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

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

適用対象