OpCodes.Initobj 字段

定义

将位于指定地址的值类型的每个字段初始化为空引用或适当的基元类型的 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 

字段值

注解

下表列出了指令的十六进制和 Microsoft 中间语言 (MSIL) 程序集格式,以及简短的参考摘要:

格式 程序集格式 说明
FE 15 <T> initobj typeTok 初始化值类型。

堆栈过渡行为(按顺序排列)为:

  1. 要初始化的值类型的地址将推送到堆栈上。

  2. 地址从堆栈中弹出;指定地址处的值类型初始化为类型 typeTok

指令initobj将 (类型 native int&、 或 *) 的推送地址指定的值类型的每个字段初始化为 null 引用或相应基元类型的 0。 调用此方法后,实例已准备好调用构造函数方法。 如果 typeTok 是引用类型,则此指令的效果 ldnull 与 后跟 stind.ref相同。

与 不同 Newobjinitobj 不调用构造函数方法。 Initobj 用于初始化值类型,而 newobj 用于分配和初始化对象。

以下 Emit 方法重载可以使用 initobj opcode:

适用于