Объектно-ориентированный C#

Записи (record) и сравнение по значению в C#

В этом уроке вы будете кратко описывать неизменяемые данные с помощью записей и создавать изменённые копии выражением with.

Введение

Запись (record) - тип, созданный для объектов, которые в основном хранят данные. Всего одна строка объявления даёт конструктор, свойства только для чтения и аккуратный вывод. А главное, две записи считаются равными, если значения внутри них одинаковы.

Строка record User(string Name, string Role) создаёт тип с двумя свойствами Name и Role. Выражение original with { Role = "Lead" } создаёт копию, в которой меняется только Role, а original остаётся с Developer. При выводе запись автоматически показывает своё содержимое в виде User { Name = Ada, Role = Lead }.

Пример на C#, который можно запустить

C#
Запустить код →
Program.cs
using System;

record User(string Name, string Role);

class Program
{
    static void Main()
    {
        var original = new User("Ada", "Developer");
        var promoted = original with { Role = "Lead" };
        Console.WriteLine(promoted);
    }
}
Результат выполнения
User { Name = Ada, Role = Lead }

Практика с отладчиком

Поставьте точку останова на важное присваивание или условие, нажмите Debug и посмотрите локальные значения, прежде чем перейти к следующей строке.

Попрактикуйтесь на задаче

Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.

Все задачи