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