CSHARPPROGLIB Telegram 6310
📀 Record-типы в C#

record в C# — это удобный способ описывать объекты данных без лишнего кода. Они сравниваются по значению, остаются неизменяемыми и отлично подходят для DTO или моделей в DDD.

Если раньше приходилось писать десятки строк с Equals, GetHashCode, ToString и конструкторами, то теперь всё это даёт одна строчка:
public record User(string Name, int Age);


Отличие от классов

Class сравнивается по ссылке. Два объекта с одинаковыми данными — разные сущности.

Record сравнивается по значению. Два объекта с одинаковыми полями — эквивалентны.

var u1 = new User("Alice", 25);
var u2 = new User("Alice", 25);

Console.WriteLine(u1 == u2); // true


Дополнительные фишки

Записи неизменяемы, но их удобно клонировать с изменением:
var u1 = new User("Alice", 25);
var u2 = u1 with { Age = 26 };

Console.WriteLine(u2); // User { Name = Alice, Age = 26 }


Можно наследовать record-тип:
public record User(string Name, int Age);
public record Admin(string Name, int Age, string Role) : User(Name, Age);

record — это синтаксический сахар, который сокращает код и делает модели данных чище и понятнее.

🐸 Библиотека шарписта

#il_люминатор
Please open Telegram to view this post
VIEW IN TELEGRAM
👍241



tgoop.com/csharpproglib/6310
Create:
Last Update:

📀 Record-типы в C#

record в C# — это удобный способ описывать объекты данных без лишнего кода. Они сравниваются по значению, остаются неизменяемыми и отлично подходят для DTO или моделей в DDD.

Если раньше приходилось писать десятки строк с Equals, GetHashCode, ToString и конструкторами, то теперь всё это даёт одна строчка:

public record User(string Name, int Age);


Отличие от классов

Class сравнивается по ссылке. Два объекта с одинаковыми данными — разные сущности.

Record сравнивается по значению. Два объекта с одинаковыми полями — эквивалентны.

var u1 = new User("Alice", 25);
var u2 = new User("Alice", 25);

Console.WriteLine(u1 == u2); // true


Дополнительные фишки

Записи неизменяемы, но их удобно клонировать с изменением:
var u1 = new User("Alice", 25);
var u2 = u1 with { Age = 26 };

Console.WriteLine(u2); // User { Name = Alice, Age = 26 }


Можно наследовать record-тип:
public record User(string Name, int Age);
public record Admin(string Name, int Age, string Role) : User(Name, Age);

record — это синтаксический сахар, который сокращает код и делает модели данных чище и понятнее.

🐸 Библиотека шарписта

#il_люминатор

BY Библиотека шарписта | C#, F#, .NET, ASP.NET


Share with your friend now:
tgoop.com/csharpproglib/6310

View MORE
Open in Telegram


Telegram News

Date: |

Telegram channels fall into two types: The Standard Channel Select: Settings – Manage Channel – Administrators – Add administrator. From your list of subscribers, select the correct user. A new window will appear on the screen. Check the rights you’re willing to give to your administrator. How to build a private or public channel on Telegram? Judge Hui described Ng as inciting others to “commit a massacre” with three posts teaching people to make “toxic chlorine gas bombs,” target police stations, police quarters and the city’s metro stations. This offence was “rather serious,” the court said.
from us


Telegram Библиотека шарписта | C#, F#, .NET, ASP.NET
FROM American