MemoryMarshal.Cast Метод

Определение

Перегрузки

Имя Описание
Cast<TFrom,TTo>(ReadOnlySpan<TFrom>)

Приводит диапазон только для чтения одного примитивного типа к диапазону только для чтения другого примитивного типа.

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

Приведение диапазона одного примитивного типа к диапазону другого примитивного типа.

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

Исходный код:
MemoryMarshal.cs
Исходный код:
MemoryMarshal.cs
Исходный код:
MemoryMarshal.cs
Исходный код:
MemoryMarshal.cs
Исходный код:
MemoryMarshal.cs

Приводит диапазон только для чтения одного примитивного типа к диапазону только для чтения другого примитивного типа.

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)

Параметры типа

TFrom

Тип исходного диапазона.

TTo

Тип целевого диапазона.

Параметры

span
ReadOnlySpan<TFrom>

Исходный срез для преобразования.

Возвращаемое значение

Преобразованный диапазон только для чтения.

Исключения

TFrom или TTo содержит ссылки на управляемые объекты.

Свойство Length нового ReadOnlySpan<T> будет превышать MaxValue.

Комментарии

Ни ни TFromTTo не может содержать ссылки на управляемые объекты. Метод Cast выполняет эту проверку во время выполнения и вызывает, ArgumentException если проверка завершается ошибкой.

Этот метод поддерживается только на платформах, поддерживающих неправильный доступ к памяти или если блок памяти выравнивается другими средствами.

Применяется к

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

Исходный код:
MemoryMarshal.cs
Исходный код:
MemoryMarshal.cs
Исходный код:
MemoryMarshal.cs
Исходный код:
MemoryMarshal.cs
Исходный код:
MemoryMarshal.cs

Приведение диапазона одного примитивного типа к диапазону другого примитивного типа.

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)

Параметры типа

TFrom

Тип исходного диапазона.

TTo

Тип целевого диапазона.

Параметры

span
Span<TFrom>

Исходный срез для преобразования.

Возвращаемое значение

Span<TTo>

Преобразованный диапазон.

Атрибуты

Исключения

TFrom или TTo содержит ссылки на управляемые объекты.

Свойство Length нового ReadOnlySpan<T> будет превышать MaxValue.

Комментарии

Ни ни TFromTTo не может содержать ссылки на управляемые объекты. Метод Cast выполняет эту проверку во время выполнения и вызывает, ArgumentException если проверка завершается ошибкой.

Если размеры двух типов отличаются, приведение объединяет или разделяет значения, что приводит к изменению длины.

Например, если TFrom есть Int64, ReadOnlySpan<Int64> содержит одно значение, 0x0100001111110F0F и TTo имеет Int32результат, ReadOnlySpan<Int32> содержащий два значения. Эти значения 0x11110F0F и 0x01000011 в маленькой архитектуре, например x86. В архитектуре большого плана порядок двух значений обратно, т. е. 0x01000011, а затем 0x11110F0F.

В качестве другого примера, если TFromInt32есть , ReadOnlySpan<Int32> содержит значения 1, 2 и 3, а TTo результат Int64ReadOnlySpan<Int64> содержит одно значение: 0x0000000200000001 на маленькой архитектуре и 0x0000000100000002 на архитектуре большого плана.

Этот метод поддерживается только на платформах, поддерживающих неправильный доступ к памяти или если блок памяти выравнивается другими средствами.

Применяется к