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) アセンブリ形式と、簡単なリファレンス概要を示します。

フォーマット アセンブリ形式 Description
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 オペコードを使用できます。

適用対象