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