Condividi tramite


OpCodes.Newarr Campo

Definizione

Inserisce un riferimento a un oggetto in una matrice unidimensionale in base zero i cui elementi sono di un tipo specifico nello stack di valutazione.

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 

Valore del campo

Commenti

La tabella seguente elenca il formato di assembly Esadecimale e MSIL (Microsoft Intermediate Language), insieme a un breve riepilogo dei riferimenti:

Formato Formato assembly Descrizione
8D <T> newarr etype Crea una nuova matrice con elementi di tipo etype.

Il comportamento di transizione dello stack, in ordine sequenziale, è:

  1. Il numero di elementi nella matrice viene inserito nello stack.

  2. Il numero di elementi viene estratto dallo stack e viene creata la matrice.

  3. Un riferimento all'oggetto alla nuova matrice viene inserito nello stack.

L'istruzione newarr inserisce un riferimento all'oggetto (tipo O) in una nuova matrice unidimensionale in base zero i cui elementi sono di tipo etype (un token di metadati che descrive il tipo). Il numero di elementi nella nuova matrice deve essere specificato come .native int Gli indici di matrice validi sono compresi tra zero e il numero massimo di elementi meno uno.

Gli elementi di una matrice possono essere qualsiasi tipo, inclusi i tipi valore.

Vengono create matrici unidimensionali di numeri in base zero usando un token di metadati che fa riferimento al tipo di valore appropriato (Int32e così via). Gli elementi della matrice vengono inizializzati su 0 del tipo appropriato.

Le matrici unidimensionali e le matrici multidimensionali non basate su zero vengono create usando Newobj anziché newarr. In genere, vengono creati usando i metodi della Array classe in .NET Framework.

OutOfMemoryException viene generata se la memoria non è sufficiente per soddisfare la richiesta.

OverflowException viene generata se numElems è minore di 0.

L'overload del metodo seguente Emit può usare il newarr codice operativo:

Si applica a