Le dernier aperçu de C# 12, une version planifiée du langage orienté objet de Microsoft pour le développement .NET, introduit le reroutage de code pour améliorer la compilation. La mise à jour propose également d'accéder aux tableaux en ligne inline arrays. Disponible dans Visual Studio 17.7 Preview 3 et .NET 8 Preview 6, tous deux publiés récemment, cet aperçu de C# 12 comprend des fonctionnalités qui serviront de base à de futures améliorations des performances.

C’est le cas de la fonction expérimentale baptisée « Interceptors » exploitée par les générateurs pour réacheminer le code, afin de fournir une optimisation spécifique au contexte. Les « Interceptors » sont destinés à améliorer la compilation Ahead-of-Time (AOT) de scénarios avancés. Les attributs spécifient l'emplacement réel du code source, de sorte que les intercepteurs ne conviennent généralement qu'aux générateurs de sources. Livrés en tant que fonction expérimentale de .NET 8, les intercepteurs pourraient être modifiés ou supprimés à un moment donné et ne devraient donc pas être utilisés en production. Autre capacité de C#12, l'expression nameof, qui produit le nom d'un type de variable ou d'un membre sous la forme d'une constante de chaîne, a été améliorée de façon à fonctionner dans un plus grand nombre de cas. Le mot-clé nameof  fonctionne désormais avec les noms de membres, y compris les initialisateurs, sur les membres statiques et dans les attributs.

D’autres fonctionnalités en approche

Une autre fonctionnalité de C# 12, l'attribut InlineArrayAttribute, introduite dans le moteur d'exécution lors d'un aperçu précédent de .NET 8, identifie un type qui peut être traité comme une séquence contiguë de primitives pour des données en ligne efficaces, sûres du point de vue du type, sûres du point de vue du dépassement de capacité, indexables et fractionnables. Cette fonctionnalité, qualifiée d’avancée, sera principalement utilisée par le compilateur, les bibliothèques .NET et d'autres bibliothèques. Les tableaux en ligne sont utilisés par les bibliothèques .NET pour améliorer les performances des applications.

Microsoft a déjà présenté en juin d'autres fonctionnalités de C# 12, notamment les paramètres optionnels pour les expressions lambda, la possibilité d'aliaser n'importe quel type et les constructeurs principaux, qui permettent d'ajouter des paramètres à une déclaration de classe. La version finale de production de C# 12 devrait être livrée avec .NET 8 dans le courant du mois de novembre.