MemoryMarshal.Cast 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
Cast<TFrom,TTo>(ReadOnlySpan<TFrom>) |
將一個簡單型別的唯讀範圍轉換為另一個簡單型別的唯讀範圍。 |
Cast<TFrom,TTo>(Span<TFrom>) |
將一個簡單型別的範圍轉換為另一個簡單型別的範圍。 |
Cast<TFrom,TTo>(ReadOnlySpan<TFrom>)
將一個簡單型別的唯讀範圍轉換為另一個簡單型別的唯讀範圍。
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
包含 Managed 物件參考。
備註
和 TFrom
TTo
都不能包含Managed對象參考。 方法 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>
要轉換的來源配量。
傳回
已轉換的範圍。
例外狀況
TFrom
或 TTo
包含 Managed 物件參考。
備註
和 TFrom
TTo
都不能包含Managed對象參考。 方法 Cast
會在運行時間執行這項檢查,並在檢查失敗時擲回 ArgumentException
。
如果兩種類型的大小不同,轉換會結合或分割值,這會導致長度變更。
例如,如果 TFrom
為 ,則 ReadOnlySpan<Int64>
包含單一值,0x0100001111110F0F 且 TTo
為 Int32,結果ReadOnlySpan<Int32>
會包含Int64兩個值。 這些值是0x11110F0F,而且0x01000011在小到小的架構上,例如 x86。 在大端架構上,兩個值的順序會反轉,也就是0x01000011,後面接著0x11110F0F。
另一個範例是 ,如果 TFrom
是 Int32,ReadOnlySpan<Int32>
則 包含 1、2 和 3 的值,而 Int64TTo
結果ReadOnlySpan<Int64>
會包含單一值:在小端架構上0x0000000200000001,而在大端架構上則0x0000000100000002。
只有在支援未對齊記憶體存取的平臺上,或以其他方式對齊記憶體區塊時,才支援這個方法。