MemoryMarshal.Cast Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
Cast<TFrom,TTo>(ReadOnlySpan<TFrom>) |
Esegue il cast di un intervallo di sola lettura di un tipo primitivo in un intervallo di sola lettura di un altro tipo primitivo. |
Cast<TFrom,TTo>(Span<TFrom>) |
Esegue il cast di un intervallo di un tipo primitivo in un intervallo di un altro tipo primitivo. |
Cast<TFrom,TTo>(ReadOnlySpan<TFrom>)
- Origine:
- MemoryMarshal.cs
- Origine:
- MemoryMarshal.cs
- Origine:
- MemoryMarshal.cs
Esegue il cast di un intervallo di sola lettura di un tipo primitivo in un intervallo di sola lettura di un altro 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)
Parametri di tipo
- TFrom
Tipo dell'intervallo di origine.
- TTo
Tipo dell'intervallo di destinazione.
Parametri
- span
- ReadOnlySpan<TFrom>
Sezione di origine da convertire.
Restituisce
Intervallo di sola lettura convertito.
Eccezioni
TFrom
o TTo
contiene riferimenti a oggetti gestiti.
La Length proprietà del nuovo ReadOnlySpan<T> supererebbe MaxValue.
Commenti
TTo
Né né TFrom
possono contenere riferimenti a oggetti gestiti. Il Cast
metodo esegue questo controllo in fase di esecuzione e genera ArgumentException
un'eccezione se il controllo ha esito negativo.
Questo metodo è supportato solo nelle piattaforme che supportano l'accesso alla memoria non allineato o quando il blocco di memoria è allineato con altri mezzi.
Si applica a
Cast<TFrom,TTo>(Span<TFrom>)
- Origine:
- MemoryMarshal.cs
- Origine:
- MemoryMarshal.cs
- Origine:
- MemoryMarshal.cs
Esegue il cast di un intervallo di un tipo primitivo in un intervallo di un altro 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)
Parametri di tipo
- TFrom
Tipo dell'intervallo di origine.
- TTo
Tipo dell'intervallo di destinazione.
Parametri
- span
- Span<TFrom>
Sezione di origine da convertire.
Restituisce
Intervallo convertito.
Eccezioni
TFrom
o TTo
contiene riferimenti a oggetti gestiti.
La Length proprietà del nuovo ReadOnlySpan<T> supererebbe MaxValue.
Commenti
TTo
Né né TFrom
possono contenere riferimenti a oggetti gestiti. Il Cast
metodo esegue questo controllo in fase di esecuzione e genera ArgumentException
un'eccezione se il controllo ha esito negativo.
Se le dimensioni dei due tipi sono diverse, il cast combina o divide i valori, che determina una modifica della lunghezza.
Ad esempio, se TFrom
è Int64, contiene ReadOnlySpan<Int64>
un singolo valore, 0x0100001111110F0F e TTo
è Int32, l'oggetto risultante ReadOnlySpan<Int32>
contiene due valori. I valori sono 0x11110F0F e 0x01000011 in un'architettura little-endian, ad esempio x86. In un'architettura big-endian, l'ordine dei due valori viene invertito, ad esempio 0x01000011 seguito da 0x11110F0F.
Come altro esempio, se TFrom
è Int32, contiene ReadOnlySpan<Int32>
i valori di 1, 2 e 3 e TTo
è Int64, il risultato ReadOnlySpan<Int64>
contiene un singolo valore: 0x0000000200000001 in un'architettura little-endian e 0x0000000100000002 in un'architettura big-endian.
Questo metodo è supportato solo nelle piattaforme che supportano l'accesso alla memoria non allineato o quando il blocco di memoria è allineato con altri mezzi.