次の方法で共有


OpCodes.Stfld フィールド

オブジェクト参照またはポインタのフィールドに格納された値を新しい値に置き換えます。

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

解説

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

形式 アセンブリ形式 説明
7D < T > stfld field オブジェクトの field の値を新しい値に置き換えます。

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

  1. オブジェクト参照またはポインタがスタックにプッシュされます。
  2. 値がスタックにプッシュされます。
  3. 値とオブジェクト参照またはポインタがスタックからポップされます。オブジェクトの field の値が提供された値に置き換えられます。

stfld 命令は、オブジェクトのフィールドの値 (O 型) またはポインタが指すフィールドの値 (natural int& 、または * の各型) を指定した値に置き換えます。 Field は、フィールド メンバ参照を参照するメタデータ トークンです。 stfld 命令には、 Unaligned プリフィックスと Volatile プリフィックのどちらかまたは両方を付けることができます。

オブジェクト参照またはポインタが null 参照であり、フィールドが静的ではない場合は、 NullReferenceException がスローされます。

field がメタデータ内で見つからない場合は、 MissingFieldException がスローされます。これは、通常、実行時ではなく、MSIL (Microsoft Intermediate Language) 命令がネイティブ コードに変換されるときにチェックされます。

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

  • ILGenerator.Emit(OpCode, FieldInfo)

必要条件

プラットフォーム: 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 名前空間