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

Ключевое слово record

Ключевое слово record объявляет ссылочный тип, для которого компилятор генерирует сравнение по полям, ToString и декомпозицию. Позиционный синтаксис задаёт свойства в заголовке. Это ссылочный тип, как class, но два экземпляра с одинаковыми данными считаются равными.

Синтаксис

record Имя(тип Поле1, тип Поле2);

Пример

Давайте сравним две записи с одинаковыми полями:

using System; record Point(int X, int Y); class Program { static void Main() { var first = new Point(1, 2); var second = new Point(1, 2); Console.WriteLine(first == second); } }

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

True

Пример

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

using System; record User(string Name, int Id); class Program { static void Main() { var user = new User("abcde", 5); Console.WriteLine(user); } }

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

User { Name = abcde, Id = 5 }

Пример

Давайте создадим копию записи с изменённым полем через with:

using System; record Line(string Text, int Len); class Program { static void Main() { var source = new Line("abcde", 5); var copy = source with { Text = "12345" }; Console.WriteLine(copy.Text); } }

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

"12345"

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

  • ключевое слово record struct,
    которое задаёт запись как тип-значение
  • ключевое слово class,
    которое объявляет обычный ссылочный тип
  • оператор with,
    который копирует запись с правками
  • метод Equals,
    который сравнивает объекты по значению
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить