# C\# 15 : des unions exhaustives, avec un coût de boxing à surveiller

Source canonique : [C\# 15 : des unions exhaustives, avec un coût de boxing à surveiller](<https://sebastien.rigaux.be/veille/liens/c-15-des-unions-exhaustives-avec-un-cout-de-boxing-a-surveiller>)

C# 15 introduit le mot-clé `union` pour représenter une valeur parmi plusieurs types sans les regrouper dans une classe de base ni perdre leur typage dans `object`. Andrew Lock montre comment les `switch` expressions vérifient que chaque cas est traité, et comment déclarer des unions comme `Result<T>`.

Le détail à considérer côté performance : l’implémentation générée stocke la valeur dans un `object`, ce qui boxe les types valeur. L’article présente une implémentation personnalisée avec `TryGetValue` pour éviter ce boxing dans les `switch`.

- Sélectionné le : 2026-11-01

- Publication de la ressource : 2026-05-19

- Mise à jour de la fiche : 2026-11-07T20:32:37+0000

- Format : Article

- Langue de la source : EN

- Crédit : Andrew Lock

- Repéré via : [C\# Digest](<https://csharpdigest.net/>)

Ressource originale : [C\# 15 : des unions exhaustives, avec un coût de boxing à surveiller](<https://andrewlock.net/exploring-the-dotnet-11-preview-2-dotnet-gets-union-types/>)

Tags : [C\#](<https://sebastien.rigaux.be/veille/tags/c-sharp>) · [.NET](<https://sebastien.rigaux.be/veille/tags/dotnet>)

Versions disponibles : [Français](<https://sebastien.rigaux.be/veille/liens/c-15-des-unions-exhaustives-avec-un-cout-de-boxing-a-surveiller>) · [English](<https://sebastien.rigaux.be/en/tech-watch/links/c-15-unions-exhaustive-matching-with-boxing-to-consider>)

[Retour à la veille](<https://sebastien.rigaux.be/veille>)
