Compartilhar via


MemoryMarshal.Cast Método

Definição

Sobrecargas

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

Converte uma extensão de somente leitura de um tipo primitivo em uma extensão de outro tipo primitivo.

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

Converte um período de um tipo primitivo em um período de outro tipo primitivo.

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

Origem:
MemoryMarshal.cs
Origem:
MemoryMarshal.cs
Origem:
MemoryMarshal.cs

Converte uma extensão de somente leitura de um tipo primitivo em uma extensão de outro tipo primitivo.

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)

Parâmetros de tipo

TFrom

O tipo do intervalo de origem.

TTo

O tipo do intervalo de destino.

Parâmetros

span
ReadOnlySpan<TFrom>

A fatia de origem a ser convertida.

Retornos

A extensão de somente leitura convertida.

Exceções

TFrom ou TTo contém referências de objeto gerenciado.

A Length propriedade do novo ReadOnlySpan<T> excederia MaxValue.

Comentários

Nem TFrom nem TTo podem conter referências de objeto gerenciado. O Cast método executa essa verificação em runtime e lança ArgumentException se a verificação falhar.

Esse método tem suporte apenas em plataformas que dão suporte ao acesso de memória desalinhado ou quando o bloco de memória é alinhado por outros meios.

Aplica-se a

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

Origem:
MemoryMarshal.cs
Origem:
MemoryMarshal.cs
Origem:
MemoryMarshal.cs

Converte um período de um tipo primitivo em um período de outro tipo primitivo.

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)

Parâmetros de tipo

TFrom

O tipo do intervalo de origem.

TTo

O tipo do intervalo de destino.

Parâmetros

span
Span<TFrom>

A fatia de origem a ser convertida.

Retornos

Span<TTo>

A extensão convertida.

Exceções

TFrom ou TTo contém referências de objeto gerenciado.

A Length propriedade do novo ReadOnlySpan<T> excederia MaxValue.

Comentários

Nem TFrom nem TTo podem conter referências de objeto gerenciado. O Cast método executa essa verificação em runtime e lança ArgumentException se a verificação falhar.

Se os tamanhos dos dois tipos forem diferentes, a conversão combinará ou dividirá valores, o que leva a uma alteração de comprimento.

Por exemplo, se TFrom for Int64, o ReadOnlySpan<Int64> conterá um único valor, 0x0100001111110F0F e TTo será Int32, o resultante ReadOnlySpan<Int32> conterá dois valores. Os valores são 0x11110F0F e 0x01000011 em uma arquitetura little-endian, como x86. Em uma arquitetura big-endian, a ordem dos dois valores é invertida, ou seja, 0x01000011, seguida por 0x11110F0F.

Como outro exemplo, se TFrom for Int32, o ReadOnlySpan<Int32> contém os valores de 1, 2 e 3 e TTo é Int64, o resultante ReadOnlySpan<Int64> contém um único valor: 0x0000000200000001 em uma arquitetura little-endian e 0x0000000100000002 em uma arquitetura big-endian.

Esse método tem suporte apenas em plataformas que dão suporte ao acesso de memória desalinhado ou quando o bloco de memória é alinhado por outros meios.

Aplica-se a