MemoryMarshal.Cast Método

Definição

Sobrecargas

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

Converte um intervalo somente leitura de um tipo primitivo em um intervalo somente leitura de outro tipo primitivo.

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

Converte um intervalo de um tipo primitivo em um intervalo de outro tipo primitivo.

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

Converte um intervalo somente leitura de um tipo primitivo em um intervalo somente leitura 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

O intervalo somente leitura convertido.

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 pode conter referências de objeto gerenciado. O Cast método executa essa verificação no runtime e é gerado ArgumentException se a verificação falhar.

Esse método só tem suporte 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>)

Converte um intervalo de um tipo primitivo em um intervalo 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>

O intervalo convertido.

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 pode conter referências de objeto gerenciado. O Cast método executa essa verificação no runtime e é gerado 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> contém um único valor, 0x0100001111110F0F e TTo é Int32, o resultado ReadOnlySpan<Int32> contém 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 resultado ReadOnlySpan<Int64> contém um único valor: 0x0000000200000001 em uma arquitetura little-endian e 0x0000000100000002 em uma arquitetura big-endian.

Esse método só tem suporte 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