次の方法で共有


OpCodes.Ldelema フィールド

定義

指定した配列インデックスにある配列要素のアドレスを & 型 (マネージド ポインター) として評価スタックの一番上に読み込みます。

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

フィールド値

注釈

次の表に、命令の 16 進数と Microsoft Intermediate Language (MSIL) アセンブリ形式と、簡単な参照の概要を示します。

形式 アセンブリ形式 説明
8f <T> ldelema class の配列要素 index のアドレスを型 (マネージド ポインター) として & 評価スタックの上部に読み込みます。

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

  1. オブジェクト参照 array がスタックにプッシュされます。

  2. インデックス値 index がスタックにプッシュされます。

  3. indexarray はスタックからポップされます。の位置 indexarray 格納されているアドレスが検索されます。

  4. アドレスはスタックにプッシュされます。

ldelemaは、 オブジェクトの配列内の特定のインデックスにあるオブジェクトのアドレスを取得するために使用されます (型class)。 命令はldelema、インデックス (型native int) の値indexのアドレスを 0 から始まる 1 次元配列arrayに読み込み、スタックの先頭に配置します。 配列はオブジェクトであるため、 型 Oの値で表されます。 値は、 命令で渡される型 class である必要があります。

ldelema 戻り値は、マネージド ポインター (型 &) です。

評価スタックに読み込まれると、4 バイト未満の整数値は (ではなくnative int) に拡張int32されることに注意してください。

NullReferenceException が null 参照の場合 array は がスローされます。

ArrayTypeMismatchException が必要な型の要素を保持しない場合 array にスローされます。

IndexOutOfRangeExceptionが負の場合、または のarray境界より大きい場合indexにスローされます。

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

適用対象