OpCodes.Ldind_I フィールド


native int 型の値を native int として評価スタックに間接的に読み込みます。Loads a value of type native int as a native int onto the evaluation stack indirectly.

public: static initonly System::Reflection::Emit::OpCode Ldind_I;
public static readonly System.Reflection.Emit.OpCode Ldind_I;
 staticval mutable Ldind_I : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_I As OpCode 




次の表は、命令の16進形式と Microsoft 中間言語 (MSIL) のアセンブリ形式と、簡単なリファレンスの概要を示しています。The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

形式Format アセンブリ形式Assembly Format 説明Description
4D4D ldindldind.i アドレスの native int 値を addr としてスタックに読み込み native int ます。Loads the native int value at address addr onto the stack as a native int.

スタックの移行動作は、次の順序で実行されます。The stack transitional behavior, in sequential order, is:

  1. アドレスがスタックにプッシュされます。An address is pushed onto the stack.

  2. アドレスはスタックからポップされます。アドレスにある値がフェッチされます。The address is popped from the stack; the value located at the address is fetched.

  3. フェッチされた値はスタックにプッシュされます。The fetched value is pushed onto the stack.

命令は、 ldind.i native int 指定されたアドレス (型 native int 、型、 & または *) からの値をとして間接的にスタックに読み込み native int ます。The ldind.i instruction indirectly loads a native int value from the specified address (of type native int, &, or *) onto the stack as a native int.

すべての手順は、 ldind Ldobj 対応する組み込み値クラスを指定する命令のショートカットです。All of the ldind instructions are shortcuts for a Ldobj instruction that specifies the corresponding built-in value class.

4バイト未満の整数値は、 int32 評価スタックに読み込まれるときに (ではなく) に拡張されることに注意 native int してください。Note that integer values of less than 4 bytes are extended to int32 (not native int) when they are loaded onto the evaluation stack. 浮動小数点値は F 、評価スタックに読み込まれるときに型に変換されます。Floating-point values are converted to F type when loaded onto the evaluation stack.

正しい形式の Microsoft 中間言語 (MSIL) では、 ldind 命令がポインターの型と一貫性のある方法で使用されます。Correctly-formed Microsoft Intermediate Language (MSIL) ensures that the ldind instructions are used in a manner consistent with the type of the pointer.

最初にスタックにプッシュされたアドレスは、コンピューター上のオブジェクトの自然サイズに合わせる必要があります。または、が発生する可能性があり NullReferenceException Unaligned ます (予防的対策のプレフィックス命令を参照)。The address initially pushed onto the stack must be aligned to the natural size of objects on the machine or a NullReferenceException can occur (see the Unaligned prefix instruction for preventative measures). アドレスを返すすべての MSIL 命令 (やなど) の結果 Ldloca Ldarga は、安全にアラインされます。The results of all MSIL instructions that return addresses (for example, Ldloca and Ldarga) are safely aligned. 1バイトを超えるデータ型の場合、バイトの順序付けはターゲット CPU に依存します。For datatypes larger than 1 byte, the byte ordering is dependent on the target CPU. バイト順に依存するコードは、すべてのプラットフォームで実行されない可能性があります。Code that depends on byte ordering might not run on all platforms.

NullReferenceException 無効なアドレスが検出された場合にスローされる可能性があります。NullReferenceException can be thrown if an invalid address is detected.

次の Emit メソッドオーバーロードでは、オペコードを使用でき ldind.i ます。The following Emit method overload can use the ldind.i opcode: