次の方法で共有


OpCodes.Ldloc フィールド

特定のインデックスのローカル変数を評価スタックに読み込みます。

Public Shared ReadOnly Ldloc As OpCode
[C#]
public static readonly OpCode Ldloc;
[C++]
public: static OpCode Ldloc;
[JScript]
public static var Ldloc : OpCode;

解説

命令の 16 進数の形式、MSIL (Microsoft Intermediate Language) アセンブリ形式、および簡単な説明の一覧を次の表に示します。

形式 アセンブリ形式 説明
FE 06 < unsigned int16 > ldloc index インデックス index のローカル変数をスタックに読み込みます。

スタックの遷移動作を順番に示すと、次のようになります。

  1. 指定したインデックスのローカル変数値がスタックにプッシュされます。

ldloc 命令は、渡されたインデックスのローカル変数番号の内容を評価スタックにプッシュします。ローカル変数の番号は 0 から始まります。ローカル変数は、メソッドの初期化フラグが true である場合にだけ、メソッドを入力する前に 0 に初期化されます。使用できるローカル変数は、65,535 (2^16-1) 個あります (0 ~ 65,534)。実装では、2 バイト整数を使用して、ローカルのインデックスおよび指定したメソッドのローカルの合計数の両方を追跡する可能性があるため、インデックス 65,535 は無効です。インデックス 65,535 を有効にすると、指定したメソッドのローカル数を追跡するために、より広い範囲の整数を使用する必要があります。

ldloc.0ldloc.1ldloc.2ldloc.3 の各命令は、先頭の 4 つのローカル変数にアクセスするためのエンコーディングを効率的に実行します。

値の型は、メソッド ヘッダー内で指定されているローカル変数の型と同じです。「Partition I」を参照してください。4 バイト長より小さいローカル変数は、スタックに読み込まれるときに、 int32 型に拡張されます。浮動小数点値は、ネイティブ サイズ (F 型) に拡張されます。

ldloc オペコードを使用できる Emit コンストラクタ オーバーロードを次に示します。

  • ILGenerator.Emit(OpCode, LocalBuilder)
  • ILGenerator.Emit(OpCode, short)

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

OpCodes クラス | OpCodes メンバ | System.Reflection.Emit 名前空間