OpCodes.Ldind_Ref フィールド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オブジェクト参照を型 O (オブジェクト参照) として評価スタックに間接的に読み込みます。
public: static initonly System::Reflection::Emit::OpCode Ldind_Ref;
public static readonly System.Reflection.Emit.OpCode Ldind_Ref;
staticval mutable Ldind_Ref : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_Ref As OpCode
フィールド値
注釈
次の表に、命令の 16 進数および Microsoft Intermediate Language (MSIL) アセンブリ形式と、簡単なリファレンス概要を示します。
| フォーマット | アセンブリ形式 | Description |
|---|---|---|
| 50 | ldind.ref | アドレス addr にあるオブジェクト参照を型としてスタックに読み込みます O |
スタック遷移の動作は、順番に次のようになります。
アドレスがスタックにプッシュされます。
アドレスはスタックからポップされます。アドレスにあるオブジェクト参照がフェッチされます。
フェッチされた参照がスタックにプッシュされます。
ldind.ref命令は、指定されたアドレス (native int、&、または *) をオブジェクト参照を型Oとしてスタックに間接的に読み込みます。
すべての ldind 命令は、対応する組み込み値クラスを指定する Ldobj 命令のショートカットです。
4 バイト未満の整数値は、評価スタックに読み込まれるときに (int32ではなく) native intに拡張されることに注意してください。 浮動小数点値は、評価スタックに読み込まれると F 型に変換されます。
正しい形式の Microsoft Intermediate Language (MSIL) により、ldind 命令がポインターの型と一致する方法で使用されるようになります。
最初にスタックにプッシュされたアドレスは、マシン上のオブジェクトの自然なサイズに合わせる必要があります。または、 NullReferenceException が発生する可能性があります (予防措置については、 Unaligned プレフィックス命令を参照してください)。 アドレス ( Ldloca や Ldargaなど) を返すすべての MSIL 命令の結果は、安全に調整されます。 1 バイトより大きいデータ型の場合、バイト順序はターゲット CPU に依存します。 バイト順序に依存するコードは、すべてのプラットフォームで実行されない場合があります。
NullReferenceException は、無効なアドレスが検出された場合にスローされる可能性があります。
次の Emit メソッドオーバーロードでは、 ldind.ref オペコードを使用できます。