Partilhar via


GC.AllocateUninitializedArray<T>(Int32, Boolean) Método

Definição

Aloca uma matriz ao ignorar a inicialização zero, se possível.

public static T[] AllocateUninitializedArray<T> (int length, bool pinned = false);
static member AllocateUninitializedArray : int * bool -> 'T[]
Public Shared Function AllocateUninitializedArray(Of T) (length As Integer, Optional pinned As Boolean = false) As T()

Parâmetros de tipo

T

Especifica o tipo do elemento de matriz.

Parâmetros

length
Int32

Especifica o comprimento da matriz.

pinned
Boolean

Especifica se a matriz alocada deve ser fixada.

Retornos

T[]

Um objeto de matriz com memória não inicializada.

Comentários

No .NET 7 e versões anteriores: se fixado for definido como true, T não deve ser um tipo de referência ou um tipo que contenha referências de objeto.

Ignorar a inicialização zero é um risco à segurança. A matriz não inicializada pode conter instâncias de valuetype inválidas ou informações confidenciais criadas por outras partes do aplicativo. O código que opera em matrizes não inicializadas deve ser fortemente examinado para garantir que os dados não inicializados nunca sejam lidos.

Ignorar a inicialização zero usando essa API só tem um benefício de desempenho material para grandes matrizes, como buffers de vários quilobytes ou mais.

Aplica-se a