次の方法で共有


OpCodes.Ldfld フィールド

定義

参照が現在評価スタック上にあるオブジェクト内のフィールドの値を検索します。

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

フィールド値

注釈

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

形式 アセンブリ形式 説明
7b <T> ldfld field 指定したオブジェクト内のフィールドの値をスタックにプッシュします。

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

  1. オブジェクト参照 (またはポインター) がスタックにプッシュされます。

  2. オブジェクト参照 (またはポインター) がスタックからポップされます。オブジェクト内の指定されたフィールドの値が見つかりました。

  3. フィールドに格納されている値は、スタックにプッシュされます。

命令は ldfld 、オブジェクト内にあるフィールドの値をスタックにプッシュします。 オブジェクトは、オブジェクト参照 (型)、マネージド ポインター (型 O)、アンマネージ ポインター (型 &)、一時的なポインター (型 native int)、または値型 *のインスタンスとしてスタック上にある必要があります。 アンマネージド ポインターの使用は、検証可能なコードでは許可されていません。 オブジェクトのフィールドは、フィールド メンバーを参照する必要があるメタデータ トークンによって指定されます。 戻り値の型は、 フィールドに関連付けられている型と同じです。 フィールドは、インスタンス フィールド (この場合、オブジェクトを null 参照にすることはできません) または静的フィールドのいずれかになります。

命令のldfld前には、 プレフィックスと Volatile プレフィックスのいずれかまたは両方をUnaligned指定できます。

NullReferenceException は、オブジェクトが null で、フィールドが静的でない場合にスローされます。

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

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

適用対象