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 

フィールド値

OpCode

注釈

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

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

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

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

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

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

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

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

適用対象