Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1007 of 1492 menu
◀ ▶

ref struct

ref struct нельзя хранить в поле обычного класса, упаковывать в object и применять в async-методе. Span<int> - тоже ref struct. Локальная переменная такого типа допустима. Строка object o = holder не компилируется - в примерах её нет.

Синтаксис

ref struct Holder { public int X; }

Пример

Давайте создать локальный Holder:

using System; ref struct Holder { public int X; } class Program { static void Main() { Holder holder = new Holder { X = 1 }; int res = holder.X; Console.WriteLine(res); } }

Результат выполнения кода:

1

Пример

Давайте изменить поле на стеке:

using System; ref struct Holder { public int X; } class Program { static void Main() { Holder holder = new Holder { X = 12345 }; holder.X = 2; Console.WriteLine(holder.X); } }

Результат выполнения кода:

2

Пример

Давайте передать значение в метод:

using System; ref struct Holder { public int X; } class Program { static int Read(Holder holder) { return holder.X; } static void Main() { Holder holder = new Holder { X = 3 }; int res = Read(holder); Console.WriteLine(res); } }

Результат выполнения кода:

3

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить