Records в C# | OTUS
Запланируйте обучение с выгодой в Otus!
-15% на все курсы до 22.11 Забрать скидку! →
Выбрать курс

Records в C#

C__HeadlineSEO_970x70-1801-f7b24e.png

Начиная с C# 9, появился новый ссылочный тип под названием Records. Его ключевая особенность в том, что он способен представлять неизменяемый immutable-тип, который, если сравнивать с классами, имеет ряд дополнительных возможностей.

Может возникнуть закономерный вопрос: а зачем нам вообще нужны неизменяемые типы? Фишка в том, что эти типы более безопасны в случаях, когда необходимо гарантировать, что данные объекта меняться не будут. В принципе, в том же .NET тоже существуют неизменяемые типы, к примеру, String.

Для определения records используют соответствующее ключевое слово record:

Screenshot_1-1801-449daf.png

Как уже было сказано выше, records -- это ссылочные типы. При этом на уровне промежуточного языка IL, в который и компилируется программный код C#, для record, по сути, создается класс.

Важно добавить, что records являются immutable лишь при некоторых определенных условиях. К примеру, у нас есть возможность использовать определенный выше тип Person так:

Screenshot_2-1801-ff9732.png

Выполнение данного кода не вызовет ошибки, а мы без проблем сможем изменить значения свойств нашего объекта Person. Если же мы захотим сделать его по-настоящему неизменяемым, следует вместо обычных сеттеров использовать init-модификатор.

Screenshot_3-1801-d54cba.png

Выше мы уже получим ошибку, пытаясь поменять значение свойств объекта Person.

Вообще, records похожи на обычные классы, к примеру, они могут быть абстрактными, их можно или наследовать, или запрещать наследование посредством оператора sealed. Однако существует и ряд отличий, но это уже тема отдельной статьи.

По материалам https://metanit.com/sharp/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто
Черная пятница в Otus! ⚡️
Скидка 15% на все курсы до 22.11 →