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) アセンブリ形式と、簡単なリファレンス概要を示します。

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

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

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

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

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

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

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

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

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

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

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

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

適用対象