OpCodes.Initobj 字段
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将位于指定地址的值类型的每个字段初始化为空引用或适当的基元类型的 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 |
初始化值类型。 |
堆栈过渡行为(按顺序排列)为:
要初始化的值类型的地址将推送到堆栈上。
地址从堆栈中弹出;指定地址处的值类型初始化为类型
typeTok
。
指令initobj
将 (类型 native int
&
、 或 *
) 的推送地址指定的值类型的每个字段初始化为 null 引用或相应基元类型的 0。 调用此方法后,实例已准备好调用构造函数方法。 如果 typeTok
是引用类型,则此指令的效果 ldnull
与 后跟 stind.ref
相同。
与 不同 Newobj, initobj
不调用构造函数方法。 Initobj
用于初始化值类型,而 newobj
用于分配和初始化对象。
以下 Emit 方法重载可以使用 initobj
opcode:
适用于
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈