OpCodes.Newarr Fält

Definition

Push-överför en objektreferens till en ny nollbaserad, endimensionell matris vars element är av en specifik typ till utvärderingsstacken.

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 

Fältvärde

Kommentarer

I följande tabell visas instruktionens sammansättningsformat för hexadecimalt och Microsoft mellanliggande språk (MSIL), tillsammans med en kort referenssammanfattning:

Format Sammansättningsformat Description
8D <T> newarr etype Skapar en ny matris med element av typen etype.

Stackens övergångsbeteende i sekventiell ordning är:

  1. Antalet element i matrisen skickas till stacken.

  2. Antalet element poppas från stacken och matrisen skapas.

  3. En objektreferens till den nya matrisen skickas till stacken.

Instruktionen newarr skickar en objektreferens (typ O) till en ny nollbaserad, endimensionell matris vars element är av typen etype (en metadatatoken som beskriver typen). Antalet element i den nya matrisen ska anges som en native int. Giltiga matrisindex sträcker sig från noll till det maximala antalet element minus ett.

Elementen i en matris kan vara valfri typ, inklusive värdetyper.

Nollbaserade endimensionella matriser med tal skapas med hjälp av en metadatatoken som refererar till lämplig värdetyp (Int32och så vidare). Element i matrisen initieras till 0 av lämplig typ.

Icke-zerobaserade endimensionella matriser och flerdimensionella matriser skapas med i Newobj stället newarrför . Vanligare är att de skapas med hjälp av metoderna i klassen Array i .NET Framework.

OutOfMemoryException genereras om det inte finns tillräckligt med minne för att uppfylla begäran.

OverflowException utlöses om numElems är mindre än 0.

Följande Emit metodöverlagring kan använda newarr opcode:

Gäller för