OpCodes.Stobj 字段

定义

将指定类型的值从计算堆栈复制到所提供的内存地址中。

public static readonly System.Reflection.Emit.OpCode Stobj;

字段值

注解

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

格式 程序集格式 说明
81 <T> stobj class 将 堆栈中的 类型的 class 值存储到内存中。

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

  1. 将地址推送到堆栈上。

  2. 类型的值类型 class 对象将推送到堆栈上。

  3. 对象和地址从堆栈中弹出;值类型对象存储在地址中。

指令stobj将值类型对象复制到地址指定的地址 (、 *&) 类型的native int指针。 复制的字节数取决于 由 class表示的类的大小,一个表示值类型的元数据标记。

指令的操作 stobj 可以通过紧靠前面的 VolatileUnaligned 前缀指令来更改。

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

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

适用于

产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0