Sdílet prostřednictvím


MemoryMarshal.Cast Metoda

Definice

Přetížení

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

Přetypuje rozsah jednoho primitivního typu jen pro čtení na rozsah jen pro čtení jiného primitivního typu.

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

Přetypuje rozsah jednoho primitivního typu na rozsah jiného primitivního typu.

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

Zdroj:
MemoryMarshal.cs
Zdroj:
MemoryMarshal.cs
Zdroj:
MemoryMarshal.cs

Přetypuje rozsah jednoho primitivního typu jen pro čtení na rozsah jen pro čtení jiného primitivního typu.

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 zdrojového rozsahu.

TTo

Typ cílového rozsahu.

Parametry

span
ReadOnlySpan<TFrom>

Zdrojová řez, která se má převést.

Návraty

Převedený rozsah jen pro čtení.

Výjimky

TFrom nebo TTo obsahuje odkazy na spravované objekty.

Vlastnost Length nového ReadOnlySpan<T> objektu by překročila MaxValuehodnotu .

Poznámky

TTo Ani TFrom nesmí obsahovat odkazy na spravované objekty. Metoda Cast provádí tuto kontrolu za běhu a vyvolá ArgumentException , pokud se kontrola nezdaří.

Tato metoda je podporována pouze na platformách, které podporují chybně zarovnaný přístup k paměti, nebo pokud je blok paměti zarovnán jiným způsobem.

Platí pro

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

Zdroj:
MemoryMarshal.cs
Zdroj:
MemoryMarshal.cs
Zdroj:
MemoryMarshal.cs

Přetypuje rozsah jednoho primitivního typu na rozsah jiného primitivního typu.

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 zdrojového rozsahu.

TTo

Typ cílového rozsahu.

Parametry

span
Span<TFrom>

Zdrojová řez, která se má převést.

Návraty

Span<TTo>

Převedené rozpětí

Výjimky

TFrom nebo TTo obsahuje odkazy na spravované objekty.

Vlastnost Length nového ReadOnlySpan<T> objektu by překročila MaxValuehodnotu .

Poznámky

TTo Ani TFrom nesmí obsahovat odkazy na spravované objekty. Metoda Cast provádí tuto kontrolu za běhu a vyvolá ArgumentException , pokud se kontrola nezdaří.

Pokud se velikosti těchto dvou typů liší, přetypování zkombinuje nebo rozdělí hodnoty, což vede ke změně délky.

Pokud je Int64například TFrom hodnota , ReadOnlySpan<Int64> obsahuje jedna hodnota 0x0100001111110F0F a TTo je Int32, výsledná ReadOnlySpan<Int32> hodnota obsahuje dvě hodnoty. Hodnoty jsou 0x11110F0F a 0x01000011 v architektuře little-endian, jako je například x86. V architektuře typu big-endian je pořadí těchto dvou hodnot obrácené, tj. 0x01000011, následované 0x11110F0F.

Další příklad: pokud TFrom je Int32, ReadOnlySpan<Int32> obsahuje hodnota 1, 2 a 3 a TTo je Int64, výsledná ReadOnlySpan<Int64> hodnota obsahuje jednu hodnotu: 0x0000000200000001 na architektuře little-endian a 0x0000000100000002 na architektuře big-endian.

Tato metoda je podporována pouze na platformách, které podporují chybně zarovnaný přístup k paměti, nebo pokud je blok paměti zarovnán jiným způsobem.

Platí pro