Compartir vía


MemoryMarshal.Cast Método

Definición

Sobrecargas

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

Convierte un intervalo de solo lectura de un tipo primitivo a un intervalo de solo lectura de otro tipo primitivo.

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

Convierte un intervalo de un tipo primitivo a un intervalo de otro tipo primitivo.

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

Source:
MemoryMarshal.cs
Source:
MemoryMarshal.cs
Source:
MemoryMarshal.cs

Convierte un intervalo de solo lectura de un tipo primitivo a un intervalo de solo lectura de otro 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

Tipo del intervalo de origen.

TTo

Tipo del intervalo de destino.

Parámetros

span
ReadOnlySpan<TFrom>

El segmento de origen para convertir.

Devoluciones

El intervalo de solo lectura convertido.

Excepciones

TFrom o TTo contiene referencias a objetos administrados.

La Length propiedad del nuevo ReadOnlySpan<T> superaría MaxValue.

Comentarios

Ni TFrom ni TTo pueden contener referencias a objetos administrados. El Cast método realiza esta comprobación en tiempo de ejecución y produce ArgumentException si se produce un error en la comprobación.

Este método solo se admite en plataformas que admiten acceso a memoria desalineada o cuando el bloque de memoria está alineado por otros medios.

Se aplica a

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

Source:
MemoryMarshal.cs
Source:
MemoryMarshal.cs
Source:
MemoryMarshal.cs

Convierte un intervalo de un tipo primitivo a un intervalo de otro 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

Tipo del intervalo de origen.

TTo

Tipo del intervalo de destino.

Parámetros

span
Span<TFrom>

El segmento de origen para convertir.

Devoluciones

Span<TTo>

El intervalo convertido.

Excepciones

TFrom o TTo contiene referencias a objetos administrados.

La Length propiedad del nuevo ReadOnlySpan<T> superaría MaxValue.

Comentarios

Ni TFrom ni TTo pueden contener referencias a objetos administrados. El Cast método realiza esta comprobación en tiempo de ejecución y produce ArgumentException si se produce un error en la comprobación.

Si los tamaños de los dos tipos son diferentes, la conversión combina o divide valores, lo que conduce a un cambio de longitud.

Por ejemplo, si TFrom es Int64, contiene ReadOnlySpan<Int64> un valor único, 0x0100001111110F0F y TTo es Int32, el resultado ReadOnlySpan<Int32> contiene dos valores. Los valores son 0x11110F0F y 0x01000011 en una arquitectura little-endian, como x86. En una arquitectura big-endian, el orden de los dos valores se invierte, es decir, 0x01000011, seguido de 0x11110F0F.

Como otro ejemplo, si TFrom es Int32, contiene ReadOnlySpan<Int32> los valores de 1, 2 y 3, y TTo es Int64, el resultado ReadOnlySpan<Int64> contiene un único valor: 0x0000000200000001 en una arquitectura little-endian y 0x0000000100000002 en una arquitectura big-endian.

Este método solo se admite en plataformas que admiten acceso a memoria desalineada o cuando el bloque de memoria está alineado por otros medios.

Se aplica a