Udostępnij za pośrednictwem


MemoryMarshal.Cast Metoda

Definicja

Przeciążenia

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

Rzutuje zakres tylko do odczytu jednego typu pierwotnego na zakres tylko do odczytu innego typu pierwotnego.

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

Rzutuje zakres jednego typu pierwotnego na zakres innego typu pierwotnego.

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

Źródło:
MemoryMarshal.cs
Źródło:
MemoryMarshal.cs
Źródło:
MemoryMarshal.cs

Rzutuje zakres tylko do odczytu jednego typu pierwotnego na zakres tylko do odczytu innego typu pierwotnego.

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)

Parametry typu

TFrom

Typ zakresu źródłowego.

TTo

Typ zakresu docelowego.

Parametry

span
ReadOnlySpan<TFrom>

Wycinek źródłowy do konwersji.

Zwraca

Przekonwertowany zakres tylko do odczytu.

Wyjątki

TFrom lub TTo zawiera odwołania do obiektów zarządzanych.

Właściwość Length nowego ReadOnlySpan<T> obiektu przekroczyłaby MaxValuewartość .

Uwagi

TFromTTo Ani nie mogą zawierać odwołań do obiektów zarządzanych. Metoda Cast wykonuje tę kontrolę w czasie wykonywania i zgłasza ArgumentException błąd w przypadku niepowodzenia sprawdzania.

Ta metoda jest obsługiwana tylko na platformach, które obsługują nieprawidłowo wyrównany dostęp do pamięci lub gdy blok pamięci jest wyrównany w inny sposób.

Dotyczy

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

Źródło:
MemoryMarshal.cs
Źródło:
MemoryMarshal.cs
Źródło:
MemoryMarshal.cs

Rzutuje zakres jednego typu pierwotnego na zakres innego typu pierwotnego.

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)

Parametry typu

TFrom

Typ zakresu źródłowego.

TTo

Typ zakresu docelowego.

Parametry

span
Span<TFrom>

Wycinek źródłowy do konwersji.

Zwraca

Span<TTo>

Przekonwertowany zakres.

Wyjątki

TFrom lub TTo zawiera odwołania do obiektów zarządzanych.

Właściwość Length nowego ReadOnlySpan<T> obiektu przekroczyłaby MaxValuewartość .

Uwagi

TFromTTo Ani nie mogą zawierać odwołań do obiektów zarządzanych. Metoda Cast wykonuje tę kontrolę w czasie wykonywania i zgłasza ArgumentException błąd w przypadku niepowodzenia sprawdzania.

Jeśli rozmiary dwóch typów są różne, rzutowanie łączy lub dzieli wartości, co prowadzi do zmiany długości.

Na przykład jeśli TFrom parametr ma Int64wartość , ReadOnlySpan<Int64> element zawiera pojedynczą wartość, 0x0100001111110F0F i TTo ma Int32wartość , wynik ReadOnlySpan<Int32> zawiera dwie wartości. Wartości są 0x11110F0F i 0x01000011 w małej architekturze endian, takiej jak x86. W architekturze big-endian kolejność dwóch wartości jest odwrócona, tj. 0x01000011, a następnie 0x11110F0F.

W innym przykładzie, jeśli TFrom parametr ma Int32wartość , ReadOnlySpan<Int32> zawiera wartości 1, 2 i 3 i TTo ma Int64wartość , wynik ReadOnlySpan<Int64> zawiera jedną wartość: 0x0000000200000001 w architekturze małej i 0x0000000100000002 architektury big-endian.

Ta metoda jest obsługiwana tylko na platformach, które obsługują nieprawidłowo wyrównany dostęp do pamięci lub gdy blok pamięci jest wyrównany w inny sposób.

Dotyczy