TGViewer
Библиотека шарписта | C#, F#, .NET, ASP.NET Библиотека шарписта | C#, F#, .NET, ASP.NET @csharpproglib · 21.7K subscribers
Post #7127 3.81K
🔥 Union types добрались до C#

До сих пор в C# не было встроенного способа описать тип «либо одно, либо другое». Приходилось использовать наследование, object или сторонние библиотеки вроде OneOf.

В .NET 11 Preview появилась экспериментальная возможность — union.


public record class Dog(string Name);
public record class Cat(int Lives);

public union Pet(Dog, Cat);

static string Describe(Pet pet) => pet switch
{
Dog(var name) => $"dog: {name}",
Cat(var lives) => $"cat: {lives}"
};


Что это даёт:

✅ один тип может хранить одно из нескольких значений
✅ компилятор знает все возможные варианты
✅ switch проверяется на полноту
✅ меньше шаблонного кода и проверок типов в рантайме

Рядом появилась и поддержка закрытых иерархий (closed), которая позволяет компилятору анализировать всех наследников типа и также проверять исчерпывающее сопоставление с образцом.

❕ Пока это preview-функциональность. До релиза .NET 11 синтаксис и детали реализации ещё могут измениться.

Идею union types сообщество просило больше десяти лет. Если фича дойдёт до релиза без серьёзных изменений, моделировать состояния, результаты операций и альтернативные типы станет заметно проще.

📍 Навигация: ВакансииЗадачиСобесы

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

#async_news
  • 🔥 30
  • ❤ 2
More from @csharpproglib
  1. Sep 21, 2026⚙️ Настоящие атомарные операции Если Volatile решает проблему видимости, то Interlocked ре…
  2. Sep 20, 2026💪 Разминка перед трудовыми буднями Что произойдёт? ❤️ — список станет [1, 3] 🔥 — Invalid…
  3. Sep 19, 2026🧩 Middleware в ASP.NET Core: 3 ловушки Middleware — звено HTTP pipeline: app.Use(async (c…
  4. Sep 18, 2026📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #garbage_collector
  5. Sep 17, 2026🦆 Duck typing в C# — почти как в TypeScript В TypeScript достаточно, чтобы у объекта был…
  6. Sep 17, 2026🧠 Почему .NET-под съедает всю память? kubectl top pod показывает 1 ГБ, а managed heap зан…
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 →