MemoryMarshal.Cast 方法

定义

重载

名称 说明
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>

要转换的源切片。

返回

转换后的只读范围。

例外

TFromTTo 包含托管对象引用。

注解

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>

要转换的源切片。

返回

Span<TTo>

转换后的跨度。

属性

例外

TFromTTo 包含托管对象引用。

注解

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>

此方法仅在支持未对齐内存访问的平台上受支持,或者当内存块按其他方式对齐时,才支持此方法。

适用于