OpCodes.Refanyval 字段

定义

检索嵌入在类型化引用内的地址(& 类型)。

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

字段值

注解

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

格式 程序集格式 说明
C2 <T> refanyval type 推送类型化引用中存储的地址。

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

  1. 值类型引用将推送到堆栈上。

  2. 类型化引用从堆栈中弹出,并检索到相应的地址。

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

类型化引用包含类型标记和对象实例的地址。

指令 refanyval 检索类型化引用中嵌入的地址。 嵌入在堆栈上提供的类型化引用中的类型必须与 (元数据标记(或 typedeftyperef) )指定的type类型匹配。 有关相关内容, Mkrefany 请参阅说明。

InvalidCastException 如果 type 与存储在类型引用 (的类型不同, type 则引发 ,是提供给 Mkrefany 构造所述类型引用) 的指令的类。

TypeLoadException 如果 type 找不到 ,则引发 。

以下 Emit 方法重载可以使用 refanyval opcode:

适用于

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