次の方法で共有


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 使用できます。

適用対象