OpCodes.Ldobj 字段

定义

将地址指向的值类型对象复制到评估堆栈的顶部。

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

字段值

注解

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

Format 程序集格式 说明
71 <T> ldobj class 将值类型的 class 实例复制到堆栈。

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

  1. 值类型对象的地址被推送到堆栈上。

  2. 该地址从堆栈中弹出,并查找位于该特定地址的实例。

  3. 存储在该地址处的对象的值将推送到堆栈上。

ldobj 指令用于将值类型作为参数传递。

ldobj指令将指向的值(addrOfValObj类型&*native int)复制到堆栈的顶部。 复制的字节数取决于类的大小(由 class 参数指定)。 参数 class 是表示值类型的元数据令牌。

指令的操作 ldobj 可以立即更改 VolatileUnaligned 前缀指令。

TypeLoadException 如果找不到类,将引发 。 当Microsoft中间语言(MSIL)指令转换为本机代码而不是运行时时,通常会检测到这种情况。

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

适用于