GC.AllocateUninitializedArray<T>(Int32, Boolean) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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.