OpCodes.Newarr Feld

Definition

Verschiebt einen Objektverweis auf ein neues nullbasiertes eindimensionales Array, dessen Elemente einen bestimmten Typ aufweisen, auf den Auswertungsstapel.

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 Microsoft MSIL-Assemblyformat (Intermediate Language) der Anweisung zusammen mit einer kurzen Referenzzusammenfassung aufgeführt:

Format Assemblyformat Description
8D <T> neuerarr etype Erstellt ein neues Array mit Elementen vom Typ etype.

Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:

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

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

  3. Ein Objektverweis auf das neue Array wird auf den Stapel verschoben.

Die newarr Anweisung verschiebt einen Objektverweis (Typ O) an 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 ein native int. Gültige Arrayindizes reichen von Null bis zur maximalen Anzahl von Elementen minus 1.

Die Elemente eines Arrays können beliebige Typen sein, einschließlich Werttypen.

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

Nicht zerobasierte eindimensionale Arrays und mehrdimensionale Arrays werden anstelle Newobj von newarrmehrdimensionalen Arrays erstellt. Häufig werden sie mithilfe der Methoden der klasse Array 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 sie kleiner als 0 ist.

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

Gilt für: