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);

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

Produto Versões
.NET 5, 6, 7, 8, 9