OpCodes.Ldflda フィールド

定義

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

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

フィールド値

注釈

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

形式 アセンブリ形式 説明
7C <T> ldflda field 指定したオブジェクト内の の field アドレスをスタックにプッシュします。

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

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

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

  3. 指定したフィールドのアドレスがスタックにプッシュされます。

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

によって ldflda 返される値は、オブジェクトがアンマネージ ポインターとしてスタックにプッシュされない限り、マネージド ポインター (型 &) です。その場合、戻り値のアドレスもアンマネージド ポインター (型 native int) になります。

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

InvalidOperationException オブジェクトがアクセス元のアプリケーション ドメイン内にない場合にスローされます。 アクセスしているアプリケーション ドメイン内にないフィールドのアドレスを読み込むことができません。

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

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

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

適用対象