OpCodes.Stfld OpCodes.Stfld OpCodes.Stfld OpCodes.Stfld Field


オブジェクト参照またはポインターのフィールドに格納された値を新しい値に置き換えます。Replaces the value stored in the field of an object reference or pointer with a new value.

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



次の表は、命令の 16 進数と簡単なリファレンス概要と共に、Microsoft Intermediate Language (MSIL) アセンブリの形式を示します。The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

形式Format アセンブリの形式Assembly Format 説明Description
7D < T >7D < T > stfld fieldstfld field 値の置換fieldの新しい値を持つオブジェクト。Replaces the value of field of the object with a new value.

履歴の移行動作を順番には。The stack transitional behavior, in sequential order, is:

  1. オブジェクト参照またはポインターがスタックにプッシュされます。An object reference or pointer is pushed onto the stack.

  2. 値は、スタックにプッシュされます。A value is pushed onto the stack.

  3. 値とオブジェクト参照またはポインターがスタックからポップされます。値fieldオブジェクトでは、指定された値に置き換えられます。The value and the object reference/pointer are popped from the stack; the value of field in the object is replaced with the supplied value.

stfld命令は、オブジェクトのフィールドの値を置き換えます (型O) またはポインターを使用して (型native int&、または*) を指定した値。The stfld instruction replaces the value of a field of an object (type O) or via a pointer (type native int, &, or *) with a given value. Field フィールド メンバーの参照を参照するメタデータ トークンです。Field is a metadata token that refers to a field member reference. stfld命令は、のいずれかまたは両方のプレフィックスを持つことができますUnalignedVolatileします。The stfld instruction can have a prefix of either or both of Unaligned and Volatile.

NullReferenceException オブジェクト参照またはポインターが null 参照と、フィールドが静的な場合にスローされます。NullReferenceException is thrown if the object reference or pointer is a null reference and the field isn't static.

MissingFieldException 場合にスローされるfieldがメタデータに見つかりません。MissingFieldException is thrown if field is not found in the metadata. これは、通常、Microsoft Intermediate Language (MSIL) 命令がランタイムではなく、ネイティブ コードに変換されるときにチェックします。This is typically checked when the Microsoft Intermediate Language (MSIL) instruction is converted to native code, not at runtime.

Emitメソッドのオーバー ロードを使用できる、 stfld opcode:The following Emit method overload can use the stfld opcode:

  • ILGenerator.Emit (オペコード、FieldInfo)ILGenerator.Emit(OpCode, FieldInfo)