英語で読む

次の方法で共有


GC.AllocateUninitializedArray<T>(Int32, Boolean) メソッド

定義

可能であれば、ゼロ初期化をスキップしながら配列を割り当てます。

C#
public static T[] AllocateUninitializedArray<T>(int length, bool pinned = false);

型パラメーター

T

配列要素の型を指定します。

パラメーター

length
Int32

配列の長さを指定します。

pinned
Boolean

割り当てられた配列を固定する必要があるかどうかを指定します。

戻り値

T[]

初期化されていないメモリを持つ配列オブジェクト。

注釈

.NET 7 以前のバージョン: 固定が trueに設定されている場合、T 参照型またはオブジェクト参照を含む型にすることはできません。

ゼロ初期化をスキップすると、セキュリティ上のリスクがあります。 初期化されていない配列には、無効な valuetype インスタンスや、アプリケーションの他の部分によって作成された機密情報を含めることができます。 初期化されていない配列で動作するコードは、初期化されていないデータが読み取られるのを確実にしないように、注意深く調査する必要があります。

この API を使用してゼロ初期化をスキップすると、数キロバイト以上のバッファーなど、大規模な配列に対してのみ重要なパフォーマンス上の利点があります。

適用対象

製品 バージョン
.NET 5, 6, 7, 8, 9, 10