Udostępnij za pośrednictwem


GC.AllocateUninitializedArray<T>(Int32, Boolean) Metoda

Definicja

Przydziela tablicę, pomijając inicjowanie zerowe, jeśli to możliwe.

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

Parametry typu

T

Określa typ elementu tablicy.

Parametry

length
Int32

Określa długość tablicy.

pinned
Boolean

Określa, czy przydzielona tablica musi być przypięta.

Zwraca

T[]

Obiekt tablicy z niezainicjowaną pamięcią.

Uwagi

W programie .NET 7 i starszych wersjach: jeśli przypięte ustawienie ma wartość true, T nie może być typem odwołania ani typem zawierającym odwołania do obiektów.

Pomijanie inicjowania zerowego jest zagrożeniem bezpieczeństwa. Niezainicjowana tablica może zawierać nieprawidłowe wystąpienia typu wartości lub informacje poufne utworzone przez inne części aplikacji. Kod działający na niezainicjowanych tablicach powinien być intensywnie analizowany, aby upewnić się, że niezainicjowane dane nigdy nie są odczytywane.

Pomijanie inicjowania zerowego przy użyciu tego interfejsu API ma tylko korzyść z wydajności materialnej dla dużych tablic, takich jak kilku kilobajtów lub więcej.

Dotyczy