Свойство Span
Span из Memory
нельзя сохранить в поле класса:
это ref struct. Читать и писать
можно только пока живёт
результат свойства. Длина -
Length.
Синтаксис
Span<T> span = memory.Span;
Пример
Давайте прочитать нулевой элемент:
using System;
class Program
{
static void Main()
{
Memory<int> memory = new Memory<int>(new[] { 1, 2, 3 });
int res = memory.Span[0];
Console.WriteLine(res);
}
}
Результат выполнения кода:
1
Пример
Давайте записать через
memory.Span:
using System;
class Program
{
static void Main()
{
int[] data = { 1, 2, 3 };
Memory<int> memory = data;
memory.Span[0] = 9;
int res = data[0];
Console.WriteLine(res);
}
}
Результат выполнения кода:
9
Пример
Давайте сравнить длину
Span и Memory:
using System;
class Program
{
static void Main()
{
Memory<int> memory = new Memory<int>(new[] { 1, 2, 3 });
bool res = memory.Span.Length == memory.Length;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Смотрите также
-
Memory,
обёртка -
Span,
тип свойства -
ReadOnlyMemory,
только чтение -
Slice,
кусокMemory