Teilen über


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

Definition

Ordnet ein Array zu, während die Nullinitialisierung übersprungen wird, falls möglich.

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

Typparameter

T

Gibt den Typ des Arrayelements an.

Parameter

length
Int32

Gibt die Länge des Arrays an.

pinned
Boolean

Gibt an, ob das zugeordnete Array angeheftet werden muss.

Gibt zurück

T[]

Ein Arrayobjekt mit nicht initialisiertem Arbeitsspeicher.

Hinweise

In .NET 7 und früheren Versionen: Wenn angeheftet auf truefestgelegt ist, darf T kein Verweistyp oder ein Typ sein, der Objektverweise enthält.

Das Überspringen der Nullinitialisierung ist ein Sicherheitsrisiko. Das nicht initialisierte Array kann ungültige Werttypinstanzen oder vertrauliche Informationen enthalten, die von anderen Teilen der Anwendung erstellt wurden. Der Code, der auf nicht initialisierten Arrays ausgeführt wird, sollte stark überprüft werden, um sicherzustellen, dass die nicht initialisierten Daten nie gelesen werden.

Das Überspringen der Nullinitialisierung mithilfe dieser API hat nur einen wesentlichen Leistungsvorteil für große Arrays, z. B. Puffer mit mehreren Kilobyte oder mehr.

Gilt für: