OpCodes.Ldelema Feld

Definition

Lädt die Adresse des Arrayelements an einem angegebenen Arrayindex als Typ & (verwalteter Zeiger) an die oberste Position des Auswertungsstapels.

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 

Feldwert

Hinweise

In der folgenden Tabelle sind das Hexadezimal- und MSIL-Assemblyformat (Microsoft Intermediate Language) der Anweisung sowie eine kurze Referenzzusammenfassung aufgeführt:

Format Assemblyformat BESCHREIBUNG
8F <T> ldelema class Lädt die Adresse des Arrayelements am index anfang des Auswertungsstapels als Typ & (verwalteter Zeiger).

Das Stapelübergangsverhalten in sequenzieller Reihenfolge lautet:

  1. Ein Objektverweis array wird auf den Stapel gepusht.

  2. Ein Indexwert index wird auf den Stapel gepusht.

  3. index und array werden aus dem Stapel geknallt. Die an position index in array gespeicherte Adresse wird nachgeschlagen.

  4. Die Adresse wird auf den Stapel gepusht.

Wird ldelema verwendet, um die Adresse eines Objekts an einem bestimmten Index in einem Array von Objekten (vom Typ class) abzurufen. Die ldelema Anweisung lädt die Adresse des Werts am Index index (Typ native int) in das nullbasierte eindimensionale Array array und platziert sie am anfang des Stapels. Arrays sind Objekte und werden daher durch einen Wert vom Typ Odargestellt. Der Wert muss vom Typ sein, class der mit der -Anweisung übergeben wird.

Der Rückgabewert für ldelema ist ein verwalteter Zeiger (Typ &).

Beachten Sie, dass ganzzahlige Werte von weniger als 4 Bytes auf int32 (nicht native int) erweitert werden, wenn sie in den Auswertungsstapel geladen werden.

NullReferenceException wird ausgelöst, wenn array ein NULL-Verweis ist.

ArrayTypeMismatchException wird ausgelöst, wenn array keine Elemente des erforderlichen Typs enthalten sind.

IndexOutOfRangeException wird ausgelöst, wenn index negativ oder größer als der Grenzwert von arrayist.

Die folgende Emit Methodenüberladung kann den ldelema opcode verwenden:

Gilt für: