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 

字段值

注解

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

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

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

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

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

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

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

以下 Emit 方法重载可以使用 initobj 操作码:

适用于