Programmation et développement logiciel

C# 15 ajoute des index étendus et des améliorations aux expressions de collection dans la version préliminaire

Microsoft a présenté sur le blog .NET un ensemble de fonctionnalités disponibles dans la première version préliminaire de C# 15, qui arrivera avec .NET 11, notamment le passage d’arguments aux constructeurs de collections, les index étendus et le nommage des boucles. Ces changements visent à réduire le code intermédiaire et à améliorer la clarté de certains schémas courants de programmation.

2026-08-24
4 min de lecture
191 vues
certi.news Editorial Team
C# 15 ajoute des index étendus et des améliorations aux expressions de collection dans la version préliminaire

Microsoft a dévoilé de nouvelles fonctionnalités disponibles en version préliminaire pour C# 15, la version qui arrivera avec .NET 11. La mise à jour comprend les types union, les hiérarchies fermées et une version préliminaire du modèle mis à jour de gestion du code non sécurisé, ainsi que des changements plus modestes visant à réduire le code procédural répétitif dans l’utilisation quotidienne.

Arguments dans les expressions de collection

Les expressions de collection en C# peuvent convertir des valeurs en plusieurs types de collections, mais elles ne permettaient auparavant pas de transmettre d’arguments au constructeur principal ou à la fonction de création. C# 15 ajoute un nouvel élément sous la forme de with(...), placé au début de l’expression, afin de transmettre ces arguments.

Cela permet par exemple de créer une liste en définissant directement sa capacité dans l’expression, ou de créer un HashSet en lui transmettant StringComparer.OrdinalIgnoreCase, au lieu de séparer la création de l’ajout des éléments. Microsoft indique que cette fonctionnalité prépare le terrain pour la syntaxe des expressions de dictionnaire attendue, qui devra probablement spécifier l’outil de comparaison utilisé pour les clés.

Accès aux éléments au moyen d’index étendus

Après que C# 14 a ajouté des membres d’extension pour les propriétés et les opérateurs en plus des méthodes, C# 15 étend ce modèle aux index étendus. Il devient ainsi possible d’accéder à un élément d’un objet récepteur comme si l’index était défini à l’origine dans son type.

Dans l’exemple présenté par Microsoft, l’accès à un élément de IEnumerable<int> nécessitait une méthode auxiliaire telle que ElementAtIndex. La nouvelle syntaxe permet quant à elle d’utiliser numbers[2] au moyen d’un index étendu associé au récepteur. Le blog précise que les index ne peuvent pas être statiques ; le conteneur d’extension doit donc inclure un récepteur nommé.

Nommage des boucles break et continue

C# 15 permet de nommer les boucles d’itération, puis de leur diriger directement un break ou un continue. Cette possibilité est utile dans les boucles imbriquées, où sortir de la boucle externe nécessitait généralement une variable booléenne, l’utilisation de goto ou le déplacement de la logique dans une fonction distincte.

En pratique, le nom rend la cible de sortie explicite dans le code et élimine le besoin d’une variable servant à suivre si l’élément recherché a été trouvé. L’exemple présente une boucle nommée scan, dont il est possible de sortir directement à l’aide de break scan.

Qu’est-ce qui change pour les développeurs ?

Ces fonctionnalités ne modifient pas tant le modèle d’exécution de .NET qu’elles ne réorganisent la syntaxe du code et réduisent certains modèles répétitifs. Leur valeur est particulièrement visible dans les projets qui utilisent des expressions de collection, traitent des boucles imbriquées ou ont besoin d’interfaces d’accès plus concises pour les types extensibles.

Ces fonctionnalités étant toujours en version préliminaire, elles ne constituent pas encore une interface finale stable. Microsoft invite les développeurs à télécharger .NET 11 et à tester C# 15 sur leurs applications, tout en consultant la référence complète des nouveautés et en participant aux discussions en cours au sein du projet csharplang. La source de cet article ne précise pas de date définitive pour la transformation des fonctionnalités en version stable.

Source de l’actualité
c
Auteur

certi.news Editorial Team

À retenir

Microsoft présente de nouvelles fonctionnalités en préversion dans C# 15, prévues avec .NET 11, notamment les arguments dans les expressions de collection, les indexeurs d’extension et les étiquettes de boucles. Ces fonctionnalités ne sont pas encore définitives, et la source ne précise pas la date de leur publication stable.

  • C# 15 ajoute la syntaxe with(...) pour transmettre des arguments aux constructeurs de collections dans les expressions de collection.
  • Les indexeurs d’extension permettent d’accéder aux éléments de certains objets avec une syntaxe semblable à l’indexation native, comme numbers[2].
  • Les étiquettes de boucles permettent de diriger directement break ou continue vers une boucle précise, ce qui est utile dans les boucles imbriquées.
  • La préversion comprend également des types union, des hiérarchies fermées et une préversion d’un modèle mis à jour pour gérer le code unsafe.
  • Microsoft encourage les développeurs à tester ces fonctionnalités via .NET 11 et à participer aux discussions du projet csharplang.

FAQ

Quand les fonctionnalités de C# 15 seront-elles disponibles ?

Elles seront proposées avec .NET 11, mais sont actuellement disponibles en préversion et la source n’a pas indiqué de date définitive pour leur publication stable.

À quoi servent les arguments with(...) dans les expressions de collection ?

Ils permettent de transmettre directement des arguments au constructeur de la collection ou à la méthode de création dans l’expression, par exemple pour définir la capacité d’une liste ou transmettre StringComparer à HashSet.

Que permettent les indexeurs d’extension ?

Ils permettent d’accéder à un élément d’un objet récepteur comme si l’indexeur était défini dans son type, à condition qu’un récepteur nommé soit présent dans le conteneur d’extension.

Comment les étiquettes de boucles aident-elles ?

Elles permettent de diriger directement break ou continue vers une boucle nommée, ce qui réduit le recours aux variables booléennes ou à goto dans les boucles imbriquées.

Dans la même catégorie

À lire également

Voir toutes les actualités