Presque terminée, la prochaine version du langage de programmation orienté objet et fortement typé C# 11 de Microsoft s’enrichit encore de fonctionnalités. Cette préversion bénéficie notamment d’améliorations en matière d'initialisation d'objet et de prise en charge des mathématiques génériques.

Avec l'initialisation d'objet, les développeurs peuvent plus facilement prendre en charge les constructeurs et les initialisateurs d'objet dans leur type, indépendamment des règles à appliquer pour les membres immuables et mutables. Les fonctionnalités incluent les membres requis et les champs ref. Pour ce qui est des mathématiques génériques, ils permettent aux développeurs d’écrire des algorithmes une seule fois pour plusieurs types numériques. L’initialisation des objets et les mathématiques génériques facilitent l’usage de C# et de .NET pour l'apprentissage machine, les statistiques et d'autres applications à forte intensité mathématique. D’autres capacités sont incluses, comme les exigences d’opérateur de décalage souple, un opérateur de décalage droit non signé, des membres abstraits et virtuels statiques de l’interface, et des IntPtr] numériques.

Des fonctionnalités complémentaires

Ces fonctionnalités supplémentaires de C# 11 en préversion ont été incluses à l'IDE Visual Studio 2022 17.3, disponible depuis le 9 août. Les littéraux de chaîne bruts et les modèles de liste comptaient parmi les ajouts apportés à la version précédente de C# 11. Pour améliorer la productivité des développeurs en C# 11, l'opérateur nameof  peut désormais être utilisé avec les paramètres de méthode, à partir de Visual Studio 2022 17.3. Les développeurs peuvent ainsi se servir de cet opérateur dans les déclarations d'attributs sur les méthodes.

Autre nouveauté de C# 11, le compilateur garantit que les champs d'un type struct sont initialisés à leur valeur par défaut dans le cadre de l'exécution d'un constructeur. Cela signifie que tout champ ou propriété automatique non initialisé par un constructeur est initialisé automatiquement par le compilateur. Les structures où le constructeur n'assigne pas définitivement tous les champs compilent maintenant, et tous les champs qui ne sont pas explicitement initialisés sont fixés à leur valeur par défaut. Pour le filtrage, la même logique de filtrage qui a été utilisée pour tester si une chaîne string avait une valeur constante spécifique peut dorénavant être utilisée avec les variables Span ou ReadOnlySpan.

Pour essayer les dernières fonctionnalités de C# 11, les développeurs peuvent télécharger la dernière version de Visual Studio 2022 et installer la version .NET 7. Ils peuvent également installer séparément le dernier aperçu de .NET 7, la version finale de .NET 7 étant attendue en novembre.