OpCodes.Newarr Feld
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
Die Anzahl der Elemente im Array wird auf den Stapel gepusht.
Die Anzahl der Elemente wird aus dem Stapel geknallt, und das Array wird erstellt.
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 int
angegeben 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 Newobjnewarr
von 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: