MemoryMarshal.Cast Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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.