C# 15 : des unions exhaustives, avec un coût de boxing à 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.
