OpCodes.Newarr Feld

Definition

Legt einen Objektverweis auf ein neues nullbasiertes, eindimensionales Array auf dem Auswertungsstapel ab, dessen Elemente einen bestimmten Typ aufweisen.

public: static initonly System::Reflection::Emit::OpCode Newarr;
public static readonly System.Reflection.Emit.OpCode Newarr;
 staticval mutable Newarr : System.Reflection.Emit.OpCode
Public Shared ReadOnly Newarr 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
8D <T> newarr etype Erstellt ein neues Array mit Elementen vom Typ etype.

Das Stapelübergangsverhalten in sequenzieller Reihenfolge lautet:

  1. Die Anzahl der Elemente im Array wird auf den Stapel gepusht.

  2. Die Anzahl der Elemente wird aus dem Stapel geknallt, und das Array wird erstellt.

  3. Ein Objektverweis auf das neue Array wird auf den Stapel übertragen.

Die newarr Anweisung pusht einen Objektverweis (Typ O) auf ein neues nullbasiertes, eindimensionales Array, dessen Elemente vom Typ etype sind (ein Metadatentoken, das den Typ beschreibt). Die Anzahl der Elemente im neuen Array sollte als native intangegeben werden. Gültige Arrayindizes reichen von null bis zur maximalen Anzahl von Elementen minus 1.

Die Elemente eines Arrays können ein beliebiger Typ sein, einschließlich Werttypen.

Nullbasierte, eindimensionale Arrays von Zahlen werden mithilfe eines Metadatentokens erstellt, das auf den entsprechenden Werttyp (Int32usw.) verweist. Elemente des Arrays werden mit 0 des entsprechenden Typs initialisiert.

Nichtzero-basierte eindimensionale Arrays und mehrdimensionale Arrays werden mithilfe Newobjnewarrvon erstellt. In der Regel werden sie mit den Methoden der Array -Klasse im .NET Framework erstellt.

OutOfMemoryException wird ausgelöst, wenn nicht genügend Arbeitsspeicher vorhanden ist, um die Anforderung zu erfüllen.

OverflowException wird ausgelöst, wenn numElems kleiner als 0 ist.

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

Gilt für: