Freigeben über


MemoryMarshal.Cast Methode

Definition

Überlädt

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

Wandelt einen schreibgeschützten Span eines primitiven Typs in einen schreibgeschützten Span eines anderen primitiven Typs um.

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

Wandelt einen Span eines primitiven Typs in einen Span eines anderen primitiven Typs um.

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

Quelle:
MemoryMarshal.cs
Quelle:
MemoryMarshal.cs
Quelle:
MemoryMarshal.cs

Wandelt einen schreibgeschützten Span eines primitiven Typs in einen schreibgeschützten Span eines anderen primitiven Typs um.

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)

Typparameter

TFrom

Der Typ der Quellspanne.

TTo

Der Typ der Zielspanne.

Parameter

span
ReadOnlySpan<TFrom>

Der zu konvertierende Quellslice.

Gibt zurück

Die konvertierte schreibgeschützte Span.

Ausnahmen

TFrom oder TTo enthält Verweise auf verwaltete Objekte.

Die Length -Eigenschaft des neuen ReadOnlySpan<T> würde überschreiten MaxValue.

Hinweise

Weder TFrom noch TTo können Verweise auf verwaltete Objekte enthalten. Die Cast -Methode führt diese Überprüfung zur Laufzeit aus und löst aus ArgumentException , wenn die Überprüfung fehlschlägt.

Diese Methode wird nur auf Plattformen unterstützt, die falsch ausgerichteten Speicherzugriff unterstützen, oder wenn der Speicherblock auf andere Weise ausgerichtet ist.

Gilt für:

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

Quelle:
MemoryMarshal.cs
Quelle:
MemoryMarshal.cs
Quelle:
MemoryMarshal.cs

Wandelt einen Span eines primitiven Typs in einen Span eines anderen primitiven Typs um.

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)

Typparameter

TFrom

Der Typ der Quellspanne.

TTo

Der Typ der Zielspanne.

Parameter

span
Span<TFrom>

Der zu konvertierende Quellslice.

Gibt zurück

Span<TTo>

Der konvertierte Span.

Ausnahmen

TFrom oder TTo enthält Verweise auf verwaltete Objekte.

Die Length -Eigenschaft des neuen ReadOnlySpan<T> würde überschreiten MaxValue.

Hinweise

Weder TFrom noch TTo können Verweise auf verwaltete Objekte enthalten. Die Cast -Methode führt diese Überprüfung zur Laufzeit aus und löst aus ArgumentException , wenn die Überprüfung fehlschlägt.

Wenn die Größen der beiden Typen unterschiedlich sind, kombiniert oder teilt die Umwandlung Werte, was zu einer Änderung der Länge führt.

Wenn TFromInt64z. B. ist, enthält die ReadOnlySpan<Int64> einen einzelnen Wert, 0x0100001111110F0F und TTo ist Int32, enthält das resultierende ReadOnlySpan<Int32> zwei Werte. Die Werte sind 0x11110F0F und 0x01000011 in einer Little-Endian-Architektur, z. B. x86. In einer Big-Endian-Architektur wird die Reihenfolge der beiden Werte umgekehrt, d. h. 0x01000011, gefolgt von 0x11110F0F.

Wenn ein weiteres Beispiel istInt32, TFrom enthält der ReadOnlySpan<Int32> die Werte 1, 2 und 3 und TTo ist Int64, enthält das ergebnis ReadOnlySpan<Int64> einen einzelnen Wert: 0x0000000200000001 für eine Little-Endian-Architektur und 0x0000000100000002 für eine Big-Endian-Architektur.

Diese Methode wird nur auf Plattformen unterstützt, die falsch ausgerichteten Speicherzugriff unterstützen, oder wenn der Speicherblock auf andere Weise ausgerichtet ist.

Gilt für: