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