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>
Исходный срез для преобразования.
Возвращаемое значение
Преобразованный диапазон.
- Атрибуты
Исключения
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 на архитектуре большого плана.
Этот метод поддерживается только на платформах, поддерживающих неправильный доступ к памяти или если блок памяти выравнивается другими средствами.