Aracılığıyla paylaş


MemoryMarshal.Cast Yöntem

Tanım

Aşırı Yüklemeler

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

Bir ilkel türe ait salt okunur bir aralığı, başka bir ilkel türe ait salt okunur bir yayılmaya atar.

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

Bir ilkel türden bir yayılmayı başka bir ilkel türe yayınlar.

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

Kaynak:
MemoryMarshal.cs
Kaynak:
MemoryMarshal.cs
Kaynak:
MemoryMarshal.cs

Bir ilkel türe ait salt okunur bir aralığı, başka bir ilkel türe ait salt okunur bir yayılmaya atar.

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)

Tür Parametreleri

TFrom

Kaynak aralığın türü.

TTo

Hedef aralığın türü.

Parametreler

span
ReadOnlySpan<TFrom>

Dönüştürülecek kaynak dilim.

Döndürülenler

Dönüştürülen salt okunur yayılma alanı.

Özel durumlar

TFrom veya TTo yönetilen nesne başvuruları içerir.

Length Yeninin ReadOnlySpan<T> özelliği değerini aşacakMaxValue.

Açıklamalar

Ne yönetilen TFrom nesne başvuruları ne de TTo içeremez. Cast yöntemi bu denetimi çalışma zamanında gerçekleştirir ve denetim başarısız olursa atarArgumentException.

Bu yöntem yalnızca yanlış hizalanmış bellek erişimini destekleyen platformlarda veya bellek bloğu başka yollarla hizalandığında desteklenir.

Şunlara uygulanır

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

Kaynak:
MemoryMarshal.cs
Kaynak:
MemoryMarshal.cs
Kaynak:
MemoryMarshal.cs

Bir ilkel türden bir yayılmayı başka bir ilkel türe yayınlar.

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)

Tür Parametreleri

TFrom

Kaynak aralığın türü.

TTo

Hedef aralığın türü.

Parametreler

span
Span<TFrom>

Dönüştürülecek kaynak dilim.

Döndürülenler

Span<TTo>

Dönüştürülen yayılma alanı.

Özel durumlar

TFrom veya TTo yönetilen nesne başvuruları içerir.

Length Yeninin ReadOnlySpan<T> özelliği değerini aşacakMaxValue.

Açıklamalar

Ne yönetilen TFrom nesne başvuruları ne de TTo içeremez. Cast yöntemi bu denetimi çalışma zamanında gerçekleştirir ve denetim başarısız olursa atarArgumentException.

İki türün boyutları farklıysa, atama değerleri birleştirir veya böler ve bu da uzunluk değişikliğine yol açar.

Örneğin, ise TFromInt64, ReadOnlySpan<Int64> 0x0100001111110F0F ve olan Int32tek bir değer içerir ve TTo sonuçta ReadOnlySpan<Int32> iki değer bulunur. Değerler 0x11110F0F ve x86 gibi küçük bir endian mimari üzerinde 0x01000011. Büyük endian mimaride iki değerin sırası tersine çevrilir, örneğin 0x01000011 ve ardından 0x11110F0F.

Başka bir örnek olarak, ise TFromInt32, ReadOnlySpan<Int32> 1, 2 ve 3 değerlerini içerir ve TTo ise Int64, sonuçta ReadOnlySpan<Int64> tek bir değer bulunur: küçük endian mimaride 0x0000000200000001 ve büyük endian mimaride 0x0000000100000002.

Bu yöntem yalnızca yanlış hizalanmış bellek erişimini destekleyen platformlarda veya bellek bloğu başka yollarla hizalandığında desteklenir.

Şunlara uygulanır