Partilhar via


OpCodes.Newarr Campo

Definição

Envia por push uma referência de objeto para uma nova matriz unidimensional baseada em zero, cujos elementos são de um tipo específico na pilha de avaliação.

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 

Valor do campo

Comentários

A tabela a seguir lista o formato de assembly hexadecimal e MSIL (Microsoft Intermediate Language) da instrução, juntamente com um breve resumo de referência:

Formatar Formato de assembly Descrição
8D <T> newarr etype Cria uma nova matriz com elementos do tipo etype.

O comportamento de transição da pilha, em ordem sequencial, é:

  1. O número de elementos na matriz é enviado por push para a pilha.

  2. O número de elementos é gerado da pilha e a matriz é criada.

  3. Uma referência de objeto à nova matriz é enviada por push para a pilha.

A newarr instrução envia por push uma referência de objeto (tipo O) para uma nova matriz unidimensional baseada em zero cujos elementos são do tipo etype (um token de metadados que descreve o tipo). O número de elementos na nova matriz deve ser especificado como um native int. Os índices de matriz válidos variam de zero ao número máximo de elementos menos um.

Os elementos de uma matriz podem ser qualquer tipo, incluindo tipos de valor.

Matrizes unidimensionais de números baseadas em zero são criadas usando um token de metadados que referencia o tipo de valor apropriado (Int32e assim por diante). Os elementos da matriz são inicializados como 0 do tipo apropriado.

Matrizes unidimensionais não baseadas em zero e matrizes multidimensionais são criadas usando Newobj em vez de newarr. Mais comumente, eles são criados usando os métodos da Array classe no .NET Framework.

OutOfMemoryException será gerado se não houver memória suficiente para atender à solicitação.

OverflowException será gerado se numElems for menor que 0.

A sobrecarga do método Emit a seguir pode usar o newarr opcode:

Aplica-se a