Span<T> 構造体
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
任意のメモリの連続した領域のタイプ セーフでメモリ セーフな表現を提供します。
generic <typename T>
public value class Span
[System.Runtime.InteropServices.Marshalling.NativeMarshalling(typeof(System.Runtime.InteropServices.Marshalling.SpanMarshaller<,>))]
public readonly ref struct Span<T>
public readonly ref struct Span<T>
[<System.Runtime.InteropServices.Marshalling.NativeMarshalling(typeof(System.Runtime.InteropServices.Marshalling.SpanMarshaller<,>))>]
type Span<'T> = struct
type Span<'T> = struct
Public Structure Span(Of T)
型パラメーター
- T
Span<T>内の項目の種類。
- 継承
- 属性
注釈
Span<T>型は、マネージド ヒープではなくスタックに割り当てられる ref 構造体です。 Ref 構造体型には、マネージド ヒープに昇格できないようにするためのいくつかの制限があります。これには、次のような制限があります。
- 箱入り。
-
Object型または
dynamic型の変数、またはインターフェイスの入力ミスに割り当てられます。 - 参照型のフィールド。
-
awaitとyieldの境界を越えて使用されます。
さらに、Equals(Object)とGetHashCodeの2つのメソッドをコールすると、NotSupportedExceptionをスローします。
Important
Span<T>はスタック専用の型であるため、ヒープ上でバッファーへの参照を格納する必要のある、多くのシナリオには適していません。 たとえば、非同期メソッドの呼び出しを行うルーチンなどが当てはまります。 このようなシナリオでは、補完的なSystem.Memory<T>とSystem.ReadOnlyMemory<T>型を使用できます。
不変、または読み取り専用の構造を表すスパンの場合、