MemoryMarshal.Cast Método

Definição

Sobrecargas

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

Conjura um intervalo de apenas leitura de um tipo primitivo para um intervalo de apenas leitura de outro tipo primitivo.

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

Conjura um intervalo de um tipo primitivo para um espaço de outro tipo primitivo.

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

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

Conjura um intervalo de apenas leitura de um tipo primitivo para um intervalo de apenas 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 Genérico

TFrom

O tipo de extensão da fonte.

TTo

O tipo do vão alvo.

Parâmetros

span
ReadOnlySpan<TFrom>

A fatia de origem a converter.

Devoluções

O vão convertido para apenas leitura.

Exceções

TFrom ou TTo contém referências a objetos geridos.

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

Observações

Nenhum TFrom dos dois nem TTo pode conter referências a objetos geridos. O Cast método realiza esta verificação em tempo de execução e lança ArgumentException se a verificação falhar.

Este método é suportado apenas em plataformas que suportam acesso à memória desalinhado ou quando o bloco de memória está alinhado por outros meios.

Aplica-se a

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

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

Conjura um intervalo de um tipo primitivo para um espaço 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;
[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)

Parâmetros de Tipo Genérico

TFrom

O tipo de extensão da fonte.

TTo

O tipo do vão alvo.

Parâmetros

span
Span<TFrom>

A fatia de origem a converter.

Devoluções

Span<TTo>

O vão convertido.

Atributos

Exceções

TFrom ou TTo contém referências a objetos geridos.

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

Observações

Nenhum TFrom dos dois nem TTo pode conter referências a objetos geridos. O Cast método realiza esta verificação em tempo de execução e lança ArgumentException se a verificação falhar.

Se os tamanhos dos dois tipos forem diferentes, a fundição combina ou divide valores, o que leva a uma alteração no comprimento.

Por exemplo, se TFrom é , o Int64 contém um único valor, 0x0100001111110F0F, e ReadOnlySpan<Int64> é TTo, o resultado Int32 contém ReadOnlySpan<Int32>dois valores. Os valores são 0x11110F0F e 0x01000011 numa arquitetura little-endian, como a x86. Numa arquitetura big-endian, a ordem dos dois valores é invertida, ou seja, 0x01000011, seguida de 0x11110F0F.

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

Este método é suportado apenas em plataformas que suportam acesso à memória desalinhado ou quando o bloco de memória está alinhado por outros meios.

Aplica-se a