語言

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 跳過零初始化,僅對大型陣列(如數 KB 或更多緩衝區)有實質效能提升。

適用於