OpCodes.Stfld 字段

定义

用新值替换在对象引用或指针的字段中存储的值。

C#
public static readonly System.Reflection.Emit.OpCode Stfld;

字段值

注解

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

格式 程序集格式 说明
7D <T> stfld field 将 对象的 值 field 替换为新值。

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

  1. 对象引用或指针被推送到堆栈上。

  2. 将值推送到堆栈上。

  3. 值和对象引用/指针从堆栈中弹出;对象中 的值 field 将替换为提供的值。

指令 stfld 将对象的字段值替换为 (类型 O) 或通过指针 (类型 native int&* 具有给定值的) 。 Field 是引用字段成员引用的元数据标记。 指令stfld的前缀可以是 和 VolatileUnaligned一个或两者。

NullReferenceException 如果对象引用或指针为 null 引用,并且字段不是静态的,则引发 。

MissingFieldException 如果在 field 元数据中找不到 ,则引发 。 当 Microsoft 中间语言 (MSIL) 指令转换为本机代码而不是在运行时时,通常会对此进行检查。

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

适用于

产品 版本
.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