Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Legt einen Objektverweis auf ein neues nullbasiertes, eindimensionales Array auf dem Auswertungsstapel ab, dessen Elemente einen bestimmten Typ aufweisen.
Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Shared ReadOnly Newarr As OpCode
'Usage
Dim value As OpCode
value = OpCodes.Newarr
public static readonly OpCode Newarr
public:
static initonly OpCode Newarr
public static final OpCode Newarr
public static final var Newarr : OpCode
Hinweise
In der folgenden Tabelle werden das hexadezimale und das Assemblyformat der MSIL (Microsoft Intermediate Language) jeweils mit einer Kurzreferenz aufgeführt:
Format |
Assemblyformat |
Beschreibung |
|---|---|---|
8D < T > |
newarr etype |
Erstellt ein neues Array mit Elementen vom Typ etype. |
Im Stapel laufen die folgenden Aktionen in der angegebenen Reihenfolge ab:
Die Anzahl der Elemente im Array wird auf dem Stapel abgelegt.
Die Anzahl der Elemente wird vom Stapel geholt, und das Array wird erstellt.
Ein Objektverweis auf das neue Array wird auf dem Stapel abgelegt.
Die newarr-Anweisung legt einen Objektverweis (Typ O) in einem neuen nullbasierten, eindimensionalen Array ab, dessen Elemente vom Typ etype sind (ein Metadatentoken, das den Typ beschreibt). Die Anzahl der Elemente im neuen Array muss als natural int angegeben werden. Der Bereich gültiger Arrayindizes erstreckt sich von 0 bis zur Höchstanzahl von Elementen minus 1.
Die Elemente in einem Array können von einem beliebigen Typ sein (einschließlich Werttypen).
Nullbasierte, eindimensionale Arrays von Zahlen werden mithilfe eines Metadatentokens erstellt, das auf den entsprechenden Werttyp verweist (Int32 usw.). Elemente des Arrays werden mit dem Wert 0 des entsprechenden Typs initialisiert.
Eindimensionale Arrays, die nicht nullbasiert sind, und mehrdimensionale Arrays werden mithilfe von Newobj anstelle von newarr erstellt. Üblicherweise werden sie jedoch mit den Methoden der Array-Klasse in .NET Framework erstellt.
OutOfMemoryException wird ausgelöst, wenn für die Verarbeitung der Anforderung nicht genügend Speicher vorhanden ist.
Wenn numElems kleiner als 0 ist, wird OverflowException ausgelöst.
Die folgende Überladung der Emit-Methode verwendet den newarr-Opcode:
- ILGenerator.Emit(OpCode, Type)
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
OpCodes-Klasse
OpCodes-Member
System.Reflection.Emit-Namespace