GC.AllocateUninitializedArray<T>(Int32, Boolean) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
如果可能,则在跳过零初始化时分配数组。
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 跳过零初始化仅具有大型数组的材料性能优势,例如几个 KB 或更多字节的缓冲区。