MemoryMarshal.Cast メソッド

定義

オーバーロード

名前 説明
Cast<TFrom,TTo>(ReadOnlySpan<TFrom>)

1 つのプリミティブ型の読み取り専用スパンを、別のプリミティブ型の読み取り専用スパンにキャストします。

Cast<TFrom,TTo>(Span<TFrom>)

あるプリミティブ型のスパンを別のプリミティブ型のスパンにキャストします。

Cast<TFrom,TTo>(ReadOnlySpan<TFrom>)

1 つのプリミティブ型の読み取り専用スパンを、別のプリミティブ型の読み取り専用スパンにキャストします。

public:
generic <typename TFrom, typename TTo>
 where TFrom : value class where TTo : value class static ReadOnlySpan<TTo> Cast(ReadOnlySpan<TFrom> span);
public static ReadOnlySpan<TTo> Cast<TFrom,TTo>(ReadOnlySpan<TFrom> span) where TFrom : struct where TTo : struct;
static member Cast : ReadOnlySpan<'From (requires 'From : struct)> -> ReadOnlySpan<'o (requires 'o : struct)> (requires 'From : struct and 'o : struct)
Public Shared Function Cast(Of TFrom As Structure, TTo As Structure) (span As ReadOnlySpan(Of TFrom)) As ReadOnlySpan(Of TTo)

型パラメーター

TFrom

ソース スパンの型。

TTo

ターゲット スパンの型。

パラメーター

span
ReadOnlySpan<TFrom>

変換するソース スライス。

返品

変換された読み取り専用スパン。

例外

TFrom または TTo にマネージド オブジェクト参照が含まれています。

新しいReadOnlySpan<T>Length プロパティがMaxValueを超える可能性があります。

注釈

TFromTToも、マネージド オブジェクト参照を含めることもできます。 Cast メソッドは実行時にこのチェックを実行し、チェックが失敗した場合はArgumentExceptionをスローします。

このメソッドは、メモリ アクセスの不整合をサポートしているプラットフォーム、またはメモリ ブロックが他の方法でアラインされている場合にのみサポートされます。

適用対象

Cast<TFrom,TTo>(Span<TFrom>)

あるプリミティブ型のスパンを別のプリミティブ型のスパンにキャストします。

public:
generic <typename TFrom, typename TTo>
 where TFrom : value class where TTo : value class static Span<TTo> Cast(Span<TFrom> span);
public static Span<TTo> Cast<TFrom,TTo>(Span<TFrom> span) where TFrom : struct where TTo : struct;
static member Cast : Span<'From (requires 'From : struct)> -> Span<'o (requires 'o : struct)> (requires 'From : struct and 'o : struct)
Public Shared Function Cast(Of TFrom As Structure, TTo As Structure) (span As Span(Of TFrom)) As Span(Of TTo)

型パラメーター

TFrom

ソース スパンの型。

TTo

ターゲット スパンの型。

パラメーター

span
Span<TFrom>

変換するソース スライス。

返品

Span<TTo>

変換されたスパン。

例外

TFrom または TTo にマネージド オブジェクト参照が含まれています。

新しいReadOnlySpan<T>Length プロパティがMaxValueを超える可能性があります。

注釈

TFromTToも、マネージド オブジェクト参照を含めることもできます。 Cast メソッドは実行時にこのチェックを実行し、チェックが失敗した場合はArgumentExceptionをスローします。

2 つの型のサイズが異なる場合、キャストによって値が結合または分割され、長さが変化します。

たとえば、 TFromInt64の場合、 ReadOnlySpan<Int64> には 1 つの値0x0100001111110F0Fが含まれており、 TToInt32、結果の ReadOnlySpan<Int32> には 2 つの値が含まれます。 値は0x11110F0Fされ、x86 などのリトル エンディアン アーキテクチャで0x01000011されます。 ビッグ エンディアン アーキテクチャでは、2 つの値の順序が逆になります。つまり、0x01000011、その後に0x11110F0Fが続きます。

別の例として、 TFromInt32の場合、 ReadOnlySpan<Int32> には 1、2、3 の値が含まれており、 TToInt64、結果の ReadOnlySpan<Int64> には、リトル エンディアン アーキテクチャでの0x0000000200000001とビッグ エンディアン アーキテクチャの0x0000000100000002という 1 つの値が含まれます。

このメソッドは、メモリ アクセスの不整合をサポートしているプラットフォーム、またはメモリ ブロックが他の方法でアラインされている場合にのみサポートされます。

適用対象