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 中間言語 (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 > stfldfieldstfld 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 中間言語 (MSIL) 命令が実行時ではなくネイティブコードに変換される場合にチェックされます。This is typically checked when the Microsoft Intermediate Language (MSIL) instruction is converted to native code, not at runtime.

Emitのメソッドオーバーロードでは、 stfldオペコードを使用できます。The following Emit method overload can use the stfld opcode:

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