MemoryMarshal.Cast 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| 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 物件參考。
備註
和 TFromTTo 都不能包含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 物件參考。
備註
和 TFromTTo 都不能包含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。
只有在支援未對齊記憶體存取的平臺上,或以其他方式對齊記憶體區塊時,才支援這個方法。