MemoryMarshal.Cast 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
| 名称 | 说明 |
|---|---|
| Cast<TFrom,TTo>(ReadOnlySpan<TFrom>) |
将一个基元类型的只读范围强制转换为另一个基元类型的只读范围。 |
| Cast<TFrom,TTo>(Span<TFrom>) |
将一个基元类型的范围强制转换为另一个基元类型的范围。 |
Cast<TFrom,TTo>(ReadOnlySpan<TFrom>)
- Source:
- MemoryMarshal.cs
- Source:
- MemoryMarshal.cs
- Source:
- MemoryMarshal.cs
- Source:
- MemoryMarshal.cs
- Source:
- MemoryMarshal.cs
将一个基元类型的只读范围强制转换为另一个基元类型的只读范围。
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 包含托管对象引用。
注解
既 TFrom 不能包含托管对象引用,也不能 TTo 包含托管对象引用。 此方法 Cast 在运行时执行此检查,并在检查失败时引发 ArgumentException 。
此方法仅在支持未对齐内存访问的平台上受支持,或者当内存块按其他方式对齐时,才支持此方法。
适用于
Cast<TFrom,TTo>(Span<TFrom>)
- Source:
- MemoryMarshal.cs
- Source:
- MemoryMarshal.cs
- Source:
- MemoryMarshal.cs
- Source:
- MemoryMarshal.cs
- Source:
- MemoryMarshal.cs
将一个基元类型的范围强制转换为另一个基元类型的范围。
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;
[System.Runtime.CompilerServices.OverloadResolutionPriority(1)]
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)
[<System.Runtime.CompilerServices.OverloadResolutionPriority(1)>]
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 包含托管对象引用。
注解
既 TFrom 不能包含托管对象引用,也不能 TTo 包含托管对象引用。 此方法 Cast 在运行时执行此检查,并在检查失败时引发 ArgumentException 。
如果两种类型的大小不同,强制转换将合并或拆分值,这会导致长度的变化。
例如,如果TFrom为,则Int64包含单个值,0x0100001111110F0F,并且ReadOnlySpan<Int64>TTo结果Int32包含ReadOnlySpan<Int32>两个值。 这些值在小端体系结构(如 x86)上0x11110F0F和0x01000011。 在大端体系结构中,两个值的顺序是反向的,即0x01000011,后跟0x11110F0F。
另一个示例是,如果TFrom包含 1、2 和 3 的值,则Int32ReadOnlySpan<Int32>结果TTo包含单个值:在小端体系结构上0x0000000200000001,在 big-endian 体系结构上0x0000000100000002。Int64ReadOnlySpan<Int64>
此方法仅在支持未对齐内存访问的平台上受支持,或者当内存块按其他方式对齐时,才支持此方法。