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
Указывает, следует ли закреплять выделенный массив.
Возвращаемое значение
Объект массива с неинициализированной памятью.
Комментарии
В .NET 7 и более ранних версиях: если закреплено значение true
, T
не должен быть ссылочным типом или типом, содержащим ссылки на объекты.
Пропуск нулевой инициализации — это риск безопасности. Неинициализированный массив может содержать недопустимые экземпляры значений или конфиденциальную информацию, созданную другими частями приложения. Код, работающий на неинициализированных массивах, должен тщательно проверяться, чтобы гарантировать, что неинициализированные данные никогда не считываются.
Пропуск нулевой инициализации с помощью этого API имеет только преимущество производительности материала для больших массивов, таких как буферы из нескольких килобайтов или более.