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

ref readonly

ref readonly позволяет читать элемент массива без копии. Присваивание через такую ссылку не компилируется - в коде примеров его нет. Сочетается с ref-возвратом.

Синтаксис

static ref readonly int First(int[] data) => ref data[0]; ref readonly int slot = ref First(data);

Пример

Давайте прочитать значение через ref readonly:

using System; class Program { static ref readonly int First(int[] data) => ref data[0]; static void Main() { int[] data = { 1, 2, 3 }; ref readonly int slot = ref First(data); int res = slot; Console.WriteLine(res); } }

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

1

Пример

Давайте сравнить с исходным массивом:

using System; class Program { static ref readonly int First(int[] data) => ref data[0]; static void Main() { int[] data = { 1, 2, 3 }; ref readonly int slot = ref First(data); bool res = slot == data[0]; Console.WriteLine(res); } }

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

True

Пример

Давайте изменить массив напрямую и снова прочитать:

using System; class Program { static ref readonly int First(int[] data) => ref data[0]; static void Main() { int[] data = { 1, 2, 3 }; data[0] = 9; ref readonly int slot = ref First(data); Console.WriteLine(slot); } }

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

9

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

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