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>)
- 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
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 TFrom
Int64z. 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.