OpCodes.Ldloc 字段

定义

将指定索引处的局部变量加载到计算堆栈上。

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

字段值

注解

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

格式 程序集格式 说明
FE 0C <unsigned int16> ldloc index 将索引 index 处的局部变量加载到堆栈上。

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

  1. 指定索引处的局部变量值将推送到堆栈上。

指令 ldloc 将传递索引处的局部变量号的内容推送到计算堆栈上,其中局部变量的编号为 0。 仅当方法上的初始化标志为 true 时,本地变量才在进入方法之前初始化为 0。 有 65,535 (2^16-1) 局部变量可能 (0-65,534) 。 索引 65,535 无效,因为可能的实现将使用 2 字节整数来跟踪本地索引以及给定方法的局部变量总数。 如果索引 65535 有效,则需要一个较宽的整数来跟踪此类方法中的局部变量数。

ldloc.0ldloc.1ldloc.2ldloc.3 指令为访问前四个局部变量提供了有效的编码。

值的类型与方法标头中指定的局部变量的类型相同。 请参阅分区 I。将小于 4 个字节的局部变量加载到堆栈上时,会扩展为类型 int32 。 浮点值将扩展到其本机大小 (类型 F) 。

以下 Emit 方法重载可以使用 ldloc 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