TGViewer
C# (C Sharp) programming C# (C Sharp) programming @csharp_ci · 18.1K subscribers
Post #1704 5.84K
C# records - идеальный способ создавать value objects.

Почему это важно?

В DDD value object должен:
- быть неизменяемым (immutable)
- сравниваться по значениям, а не по ссылке

Именно это records дают из коробки.

Что получаем:
- неизменяемость через init
- структурное сравнение (Value Equality)
- короткий и чистый синтаксис
- deconstruction
- pattern matching

Пример:


public class Booking
{
public Address Address { get; init; }
public DateRange Period { get; init; }
}

public record Address(
string Street,
string City,
string State,
string Country,
string ZipCode);

Теперь два Address считаются равными, если совпадают их поля - без переопределения Equals и GetHashCode.

Раньше для value object приходилось писать:
• конструкторы
• Equals
• GetHashCode
• оператор ==

Теперь - одна строка.

Records делают value objects:

• безопаснее
• проще
• ближе к функциональному стилю

Если используете DDD в .NET - records должны быть стандартом для value objects.
More from @csharp_ci
  1. Sep 23, 2026🐞 Когда логов недостаточно: дамп памяти из C# Баг возникает только на проде, а локально в…
  2. Sep 21, 2026Awesome Jev - большая подборка инструментов для новой модели TypeSafe AI 🤗 Jev - новая бы…
  3. Sep 21, 2026🔍Тестовое собеседование с Senior C# разработчиком уже завтра 22 сентября(уже завтра!) в 1…
  4. Sep 20, 2026🧩 Задача на C#: почему воркер завис, хотя очередь почти пустая? Есть канал вместимостью о…
  5. Sep 18, 2026Post #1882
  6. Sep 17, 2026🔥 Microsoft выпустила .NET 11 RC1**- первый релиз-кандидат уже с **go-live support, то ес…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →