MemoryMarshal.Cast Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
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.