Поделиться через


GC.AllocateUninitializedArray<T>(Int32, Boolean) Метод

Определение

При возможности выделяет массив, пропуская ноль-инициализацию.

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

Параметры типа

T

Указывает тип элемента массива.

Параметры

length
Int32

Указывает длину массива.

pinned
Boolean

Указывает, следует ли закреплять выделенный массив.

Возвращаемое значение

T[]

Объект массива с неинициализированной памятью.

Комментарии

В .NET 7 и более ранних версиях: если закреплено значение true, T не должен быть ссылочным типом или типом, содержащим ссылки на объекты.

Пропуск нулевой инициализации — это риск безопасности. Неинициализированный массив может содержать недопустимые экземпляры значений или конфиденциальную информацию, созданную другими частями приложения. Код, работающий на неинициализированных массивах, должен тщательно проверяться, чтобы гарантировать, что неинициализированные данные никогда не считываются.

Пропуск нулевой инициализации с помощью этого API имеет только преимущество производительности материала для больших массивов, таких как буферы из нескольких килобайтов или более.

Применяется к