OpCodes.Stloc フィールド

定義

評価スタックの先頭から現在の値をポップし、指定したインデックス位置にあるローカル変数リストに格納します。

public: static initonly System::Reflection::Emit::OpCode Stloc;
public static readonly System.Reflection.Emit.OpCode Stloc;
 staticval mutable Stloc : System.Reflection.Emit.OpCode
Public Shared ReadOnly Stloc As OpCode 

フィールド値

注釈

次の表に、命令の 16 進数と Microsoft Intermediate Language (MSIL) アセンブリ形式と、簡単なリファレンスの概要を示します。

形式 アセンブリ形式 説明
FE 0E <unsigned int16> stloc index スタックから値をポップし、ローカル変数 indexに格納します。

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

  1. 値はスタックからポップされ、ローカル変数 indexに配置されます。

命令は stloc 、評価スタックから最上位の値をポップし、ローカル変数番号 indexに移動します。ここで、ローカル変数には 0 以降の番号が付けられます。 値の型は、現在のメソッドのローカルシグネチャで指定されているローカル変数の型と一致する必要があります。

長さ 4 バイト未満の整数値を保持するローカルに格納すると、スタックからローカル変数に移動すると、値が切り捨てられます。 浮動小数点値は、ネイティブ サイズ (型 F) から引数に関連付けられているサイズに丸められます。

正しい Microsoft Intermediate Language (MSIL) の手順では、 index 有効なローカル インデックスである必要があります。 命令の stloc 場合、 index は 0 ~ 65534 (具体的には 65535 は無効) の範囲である必要があります。 65535 を除外する理由は実用的です。多くの場合、実装では 2 バイトの整数を使用して、ローカルのインデックスと、特定のメソッドのローカルの合計数の両方を追跡します。 65535 のインデックスが有効になっている場合、このようなメソッドのローカルの数を追跡するには、より広い整数が必要になります。

Emit のメソッド オーバーロードでは、オペコードを stloc 使用できます。

適用対象