MemoryMarshal.Cast Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ü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>)
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 des Zielbereichs.
Parameter
- span
- ReadOnlySpan<TFrom>
Der zu konvertierende Quellslice.
Gibt zurück
- ReadOnlySpan<TTo>
Die konvertierte schreibgeschützte Span.
Ausnahmen
TFrom oder TTo enthält Verweise auf verwaltete Objekte.
Die Length Eigenschaft des neuen ReadOnlySpan<T> würde überschritten MaxValue.
Hinweise
Weder noch TFrom TTo kann verwaltete Objektverweise enthalten. Die Cast Methode führt diese Überprüfung zur Laufzeit aus und löst aus, wenn die Überprüfung fehlschlägt ArgumentException .
Diese Methode wird nur auf Plattformen unterstützt, die den falsch ausgerichteten Speicherzugriff unterstützen oder wenn der Speicherblock auf andere Weise ausgerichtet wird.
Gilt für:
Cast<TFrom,TTo>(Span<TFrom>)
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 des Zielbereichs.
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 überschritten MaxValue.
Hinweise
Weder noch TFrom TTo kann verwaltete Objektverweise enthalten. Die Cast Methode führt diese Überprüfung zur Laufzeit aus und löst aus, wenn die Überprüfung fehlschlägt ArgumentException .
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 TFrom dies beispielsweise der Wert ist Int64, enthält dies ReadOnlySpan<Int64> einen einzelnen Wert, 0x0100001111110F0F und TTo ist Int32, dass das ergebnis ReadOnlySpan<Int32> zwei Werte enthält. Die Werte sind 0x11110F0F und 0x01000011 auf einer kleinen endischen Architektur, z. B. x86. Bei einer big-endischen Architektur wird die Reihenfolge der beiden Werte umgekehrt, d. h. 0x01000011, gefolgt von 0x11110F0F.
Wenn ein weiteres Beispiel ist, TFrom Int32enthält dies ReadOnlySpan<Int32> die Werte 1, 2 und 3 und TTo ist Int64, das ergebnis ReadOnlySpan<Int64> einen einzelnen Wert: 0x0000000200000001 auf einer kleinen endischen Architektur und 0x0000000100000002 auf einer Big-End-Architektur.
Diese Methode wird nur auf Plattformen unterstützt, die den falsch ausgerichteten Speicherzugriff unterstützen oder wenn der Speicherblock auf andere Weise ausgerichtet wird.