Span<T> 構造体

定義

任意のメモリの連続した領域のタイプ セーフでメモリ セーフな表現を提供します。

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>
属性

注釈

Span<T>型は、マネージド ヒープではなくスタックに割り当てられる ref 構造体です。 Ref 構造体型には、マネージド ヒープに昇格できないようにするためのいくつかの制限があります。これには、次のような制限があります。

  • 箱入り。
  • Object型またはdynamic型の変数、またはインターフェイスの入力ミスに割り当てられます。
  • 参照型のフィールド。
  • awaityieldの境界を越えて使用されます。

さらに、Equals(Object)GetHashCodeの2つのメソッドをコールすると、NotSupportedExceptionをスローします。

Important

Span<T>はスタック専用の型であるため、ヒープ上でバッファーへの参照を格納する必要のある、多くのシナリオには適していません。 たとえば、非同期メソッドの呼び出しを行うルーチンなどが当てはまります。 このようなシナリオでは、補完的なSystem.Memory<T>System.ReadOnlyMemory<T>型を使用できます。

不変、または読み取り専用の構造を表すスパンの場合、