다음을 통해 공유


MemoryMarshal.Cast 메서드

정의

오버로드

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

한 가지 기본 형식의 읽기 전용 범위를 또 다른 기본 형식의 읽기 전용 범위로 캐스팅합니다.

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

한 가지 기본 형식의 범위를 또 다른 기본 형식의 범위로 캐스팅합니다.

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

Source:
MemoryMarshal.cs
Source:
MemoryMarshal.cs
Source:
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 에는 관리되는 개체 참조가 포함되어 있습니다.

ReadOnlySpan<T> 의 속성이 Length 를 초과MaxValue합니다.

설명

TFrom 관리되는 개체 참조도 포함할 수 없습니다TTo. 메서드는 Cast 런타임에 이 검사를 수행하고 검사가 실패하면 을 throw합니다 ArgumentException .

이 메서드는 잘못 정렬된 메모리 액세스를 지원하는 플랫폼 또는 메모리 블록이 다른 방법으로 정렬된 경우에만 지원됩니다.

적용 대상

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

Source:
MemoryMarshal.cs
Source:
MemoryMarshal.cs
Source:
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;
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 에는 관리되는 개체 참조가 포함되어 있습니다.

ReadOnlySpan<T> 의 속성이 Length 를 초과MaxValue합니다.

설명

TFrom 관리되는 개체 참조도 포함할 수 없습니다TTo. 메서드는 Cast 런타임에 이 검사를 수행하고 검사가 실패하면 을 throw합니다 ArgumentException .

두 형식의 크기가 다른 경우 캐스트는 값을 결합하거나 분할하여 길이가 변경됩니다.

예를 들어 가 Int64이면 TFrom 에는 ReadOnlySpan<Int64> 단일 값인 0x0100001111110F0F 및 가 Int32포함되고 TTo 결과는 ReadOnlySpan<Int32> 두 개의 값이 포함됩니다. 값은 x86과 같은 little-endian 아키텍처에서 0x11110F0F 및 0x01000011. big-endian 아키텍처에서는 두 값의 순서(예: 0x01000011) 순서가 반전되고 그 뒤에 0x11110F0F.

또 다른 예로, 가 인 경우 TFrom 는 1, 2 및 3 TToInt64의 값을 포함하고, 결과는 ReadOnlySpan<Int64> 단일 값을 포함합니다. 즉, little-endian 아키텍처에 0x0000000200000001, big-endian 아키텍처에서 ReadOnlySpan<Int32> 0x0000000100000002.Int32

이 메서드는 잘못 정렬된 메모리 액세스를 지원하는 플랫폼 또는 메모리 블록이 다른 방법으로 정렬된 경우에만 지원됩니다.

적용 대상