İngilizce dilinde oku

Aracılığıyla paylaş


Span<T>.GetPinnableReference Yöntem

Tanım

Sabitleme için kullanılabilecek T türünde bir nesneye başvuru döndürür.

Bu yöntem .NET derleyicilerini desteklemeye yöneliktir ve kullanıcı kodu tarafından çağrılmak üzere tasarlanmamıştır.

public ref T GetPinnableReference();

Döndürülenler

T

0 dizinindeki span öğesine başvuru veya yayılma alanı boşsa null.

Örnekler

Aşağıdaki örnekte bir tamsayı dizisi oluşturma, diziyi sabitleme ve her öğeyi konsola yazma işlemleri gösterilmektedir.

using System;

// Note: you must compile this sample using the unsafe flag.
// From the command line, type the following: csc sample.cs /unsafe

public class Example
{
    public static unsafe void Main()
    {
        int[] array = CreateInt32Array();

        // Create a span, pin it, and print its elements.
        Span<int> span = array.AsSpan();
        fixed (int* spanPtr = span)
        {
            Console.WriteLine($"Span contains {span.Length} elements:");
            for (int i = 0; i < span.Length; i++)
            {
                Console.WriteLine(spanPtr[i]);
            }
            Console.WriteLine();
        }

        // Create a read-only span, pin it, and print its elements.
        ReadOnlySpan<int> readonlyspan = array.AsSpan();
        fixed (int* readonlyspanPtr = readonlyspan)
        {
            Console.WriteLine($"ReadOnlySpan contains {readonlyspan.Length} elements:");
            for (int i = 0; i < readonlyspan.Length; i++)
            {
                Console.WriteLine(readonlyspanPtr[i]);
            }
            Console.WriteLine();
        }
    }

    private static int[] CreateInt32Array()
    {
        return new int[] { 100, 200, 300, 400, 500 };
    }
}

// The example displays the following output:
//       Span contains 5 elements:
//       100
//       200
//       300
//       400
//       500
//
//       ReadOnlySpan contains 5 elements:
//       100
//       200
//       300
//       400
//       500

Açıklamalar

Uygulamalar doğrudan GetPinnableReferenceçağırmamalıdır. Bunun yerine çağıranların, C# fixed deyimi gibi dillerinin normal sabitleme söz dizimini kullanması gerekir.

bir Span<char>sabitleniyorsa, sonuçta elde edilen char*null sonlandırıldığı varsayılmaz. Bu davranış, sonuçta elde edilen char* null olarak sonlandırılacağı garanti edilen bir stringsabitlemesinden farklıdır.

Şunlara uygulanır

Ürün Sürümler
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Standard 2.0 (package-provided), 2.1