Aracılığıyla paylaş


SpanMarshaller<T,TUnmanagedElement> Sınıf

Tanım

Önemli

Bu API, CLS uyumlu değildir.

Yönetilen bir Span<T> değerden öğelerin yönetilmeyen değerlerinin bitişik yerel dizisine hazırlamayı destekler.

generic <typename T, typename TUnmanagedElement>
 where TUnmanagedElement : value classpublic ref class SpanMarshaller abstract sealed
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.Marshalling.ContiguousCollectionMarshaller]
[System.Runtime.InteropServices.Marshalling.CustomMarshaller(typeof(System.Span<>), System.Runtime.InteropServices.Marshalling.MarshalMode.Default, typeof(System.Runtime.InteropServices.Marshalling.SpanMarshaller<,>))]
[System.Runtime.InteropServices.Marshalling.CustomMarshaller(typeof(System.Span<>), System.Runtime.InteropServices.Marshalling.MarshalMode.ManagedToUnmanagedIn, typeof(System.Runtime.InteropServices.Marshalling.SpanMarshaller<,>+ManagedToUnmanagedIn))]
public static class SpanMarshaller<T,TUnmanagedElement> where TUnmanagedElement : struct
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.Marshalling.ContiguousCollectionMarshaller>]
[<System.Runtime.InteropServices.Marshalling.CustomMarshaller(typeof(System.Span<>), System.Runtime.InteropServices.Marshalling.MarshalMode.Default, typeof(System.Runtime.InteropServices.Marshalling.SpanMarshaller<,>))>]
[<System.Runtime.InteropServices.Marshalling.CustomMarshaller(typeof(System.Span<>), System.Runtime.InteropServices.Marshalling.MarshalMode.ManagedToUnmanagedIn, typeof(System.Runtime.InteropServices.Marshalling.SpanMarshaller<,>+ManagedToUnmanagedIn))>]
type SpanMarshaller<'T, 'UnmanagedElement (requires 'UnmanagedElement : struct)> = class
Public Class SpanMarshaller(Of T, TUnmanagedElement)

Tür Parametreleri

T

Yayılma alanının yönetilen öğe türü.

TUnmanagedElement

Span öğelerinin yönetilmeyen türü.

Devralma
SpanMarshaller<T,TUnmanagedElement>
Öznitelikler

Açıklamalar

Span<T> Bu marshaller ile birlikte bir marshalled, semantiği ile GetReference<T>(Span<T>)eşleşecektir. Özellikle bu marshaller, yayılma alanı değer olmayannull bir değerle oluşturulduysa sıfır uzunluklu bir yayma için değer olmayannull bir değer geçirir.

Yöntemler

AllocateContainerForManagedElements(TUnmanagedElement*, Int32)

Yönetilen öğeleri depolamak için alan ayırır.

AllocateContainerForUnmanagedElements(Span<T>, Int32)

Yönetilmeyen öğeleri depolamak için alanı ayırır.

Free(TUnmanagedElement*)

Ayrılan yönetilmeyen belleği serbest bırakır.

GetManagedValuesDestination(Span<T>)

Yönetilen koleksiyon öğelerinin depolanması gereken alanın bir aralığını alır.

GetManagedValuesSource(Span<T>)

Yönetilen koleksiyon öğelerinin bir aralığını alır.

GetUnmanagedValuesDestination(TUnmanagedElement*, Int32)

Yönetilmeyen koleksiyon öğelerinin depolanması gereken alanın bir aralığını alır.

GetUnmanagedValuesSource(TUnmanagedElement*, Int32)

Yerel koleksiyon öğelerinin bir aralığını alır.

Şunlara uygulanır