MemoryMarshal.Cast Metódus

Definíció

Túlterhelések

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

Egy primitív típus írásvédett tartományát egy másik primitív típus írásvédett spanjára öntötte.

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

Egy primitív típus egy spanját egy másik primitív típusra veti.

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

Forrás:
MemoryMarshal.cs
Forrás:
MemoryMarshal.cs
Forrás:
MemoryMarshal.cs
Forrás:
MemoryMarshal.cs
Forrás:
MemoryMarshal.cs

Egy primitív típus írásvédett tartományát egy másik primitív típus írásvédett spanjára öntötte.

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)

Típusparaméterek

TFrom

A forrástartomány típusa.

TTo

A céltartomány típusa.

Paraméterek

span
ReadOnlySpan<TFrom>

A konvertálni kívánt forrásszelet.

Válaszok

A konvertált írásvédett tartomány.

Kivételek

TFrom vagy TTo felügyelt objektumhivatkozásokat tartalmaz.

Az Length új ReadOnlySpan<T> tulajdonsága meghaladja a .MaxValue

Megjegyzések

Sem felügyelt objektumhivatkozásokat, TFrom sem TTo pedig nem tartalmazhat. A Cast metódus futásidőben hajtja végre ezt az ellenőrzést, és eldobja ArgumentException , ha az ellenőrzés sikertelen.

Ez a módszer csak olyan platformokon támogatott, amelyek támogatják a nem megfelelő memóriahozzáférést, vagy ha a memóriablokk más módon van igazítva.

A következőre érvényes:

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

Forrás:
MemoryMarshal.cs
Forrás:
MemoryMarshal.cs
Forrás:
MemoryMarshal.cs
Forrás:
MemoryMarshal.cs
Forrás:
MemoryMarshal.cs

Egy primitív típus egy spanját egy másik primitív típusra veti.

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;
[System.Runtime.CompilerServices.OverloadResolutionPriority(1)]
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)
[<System.Runtime.CompilerServices.OverloadResolutionPriority(1)>]
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)

Típusparaméterek

TFrom

A forrástartomány típusa.

TTo

A céltartomány típusa.

Paraméterek

span
Span<TFrom>

A konvertálni kívánt forrásszelet.

Válaszok

Span<TTo>

A konvertált időtartam.

Attribútumok

Kivételek

TFrom vagy TTo felügyelt objektumhivatkozásokat tartalmaz.

Az Length új ReadOnlySpan<T> tulajdonsága meghaladja a .MaxValue

Megjegyzések

Sem felügyelt objektumhivatkozásokat, TFrom sem TTo pedig nem tartalmazhat. A Cast metódus futásidőben hajtja végre ezt az ellenőrzést, és eldobja ArgumentException , ha az ellenőrzés sikertelen.

Ha a két típus mérete eltérő, a leadott értékek egyesülnek vagy felosztják az értékeket, ami a hossz változásához vezet.

Ha például TFrom az Int64, akkor a ReadOnlySpan<Int64> függvény egyetlen értéket tartalmaz, 0x0100001111110F0F és TTo az is Int32, az eredmény ReadOnlySpan<Int32> két értéket tartalmaz. Az értékek 0x11110F0F és 0x01000011 egy kis endian architektúrán, például az x86-on. A big endian architektúrában a két érték sorrendje fordított, azaz 0x01000011, amelyet a 0x11110F0F követ.

Egy másik példa, ha TFrom az Int32ReadOnlySpan<Int32> 1, 2 és 3 értéket tartalmazza, és TTo az Int64eredmény ReadOnlySpan<Int64> egyetlen értéket tartalmaz: 0x0000000200000001 egy kis endian architektúrán, és 0x0000000100000002 egy big endian architektúrán.

Ez a módszer csak olyan platformokon támogatott, amelyek támogatják a nem megfelelő memóriahozzáférést, vagy ha a memóriablokk más módon van igazítva.

A következőre érvényes: