OpCodes.Ldflda フィールド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
参照が現在評価スタック上にあるオブジェクト内のフィールドのアドレスを検索します。
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 アドレスをスタックにプッシュします。 |
スタック遷移の動作は、順番に次のようになります。
オブジェクト参照 (またはポインター) がスタックにプッシュされます。
オブジェクト参照 (またはポインター) がスタックからポップされます。オブジェクト内の指定されたフィールドのアドレスが見つかりました。
指定したフィールドのアドレスがスタックにプッシュされます。
命令は ldflda
、オブジェクト内にあるフィールドのアドレスをスタックにプッシュします。 オブジェクトは、オブジェクト参照 (型)、マネージド ポインター (型 O
)、アンマネージ ポインター (型 &
)、一時的なポインター (型 native int
)、または値型 *
のインスタンスとしてスタック上にある必要があります。 アンマネージド ポインターの使用は、検証可能なコードでは許可されていません。 オブジェクトのフィールドは、フィールド メンバーを参照する必要があるメタデータ トークンによって指定されます。
によって ldflda
返される値は、オブジェクトがアンマネージド ポインターとしてスタックにプッシュされない限り、マネージド ポインター (型 &
) です。その場合、戻りアドレスもアンマネージド ポインター (型 native int
) です。
命令のldflda
前には、 プレフィックスと Volatile プレフィックスのいずれかまたは両方をUnaligned指定できます。
InvalidOperationException は、オブジェクトがアクセス元のアプリケーション ドメイン内にない場合にスローされます。 アクセスしているアプリケーション ドメイン内にないフィールドのアドレスを読み込むことができません。
NullReferenceException は、オブジェクトが null で、フィールドが静的でない場合にスローされます。
MissingFieldException は、指定されたフィールドがメタデータに見つからない場合にスローされます。 これは通常、Microsoft Intermediate Language (MSIL) 命令が実行時ではなくネイティブ コードに変換されるときにチェックされます。
次 Emit のメソッド オーバーロードでは、オペコードを ldflda
使用できます。
適用対象
.NET