EN SAVOIR PLUS

  • Microsoft affirme que la violation de ConnectWise a permis aux espions chinois de s’en prendre à 2 250 locataires du cloud

  • OneDrive offre aux Mac un million de choses à synchroniser

  • Microsoft admet que les problèmes de VPN Always On n’ont pas été résolus dans la mise à jour de sécurité d’octobre.

  • Écrivez du code résistant aux robots avec KillSwitch, un langage de programmation conçu pour confondre les LLM

  • Administrateur : « J’ai passé tout le week-end sur mes serveurs » après que Microsoft ait interrompu Exchange Server avec les mises à jour d’octobre

Microsoft s’apprête à lancer la prochaine itération de C# en novembre.

Redmond a récemment dévoilé un aperçu de C# 15 qui introduit des restrictions plus strictes sur les types de données ainsi que des protections améliorées en matière de sécurité de la mémoire. La fonctionnalité la plus fréquemment demandée dans cette version concerne peut-être les types d’union.

Les types d’union ne sont pas nouveaux dans la programmation. Python, Scala et TypeScript reconnaissent tous le concept. Mais avec C#, « C’est ainsi que les syndicats devraient être », s’est vanté le concepteur principal de C#, Mads Torgersen, lors d’une conférence d’introduction plus tôt cette année.

En un mot, les types d’union permettent de classer différents types de données personnalisés en une seule entité.

Le mot-clé union peut regrouper une collection de types de données personnalisés (« Chien », « Chat » et « Oiseau ») en un seul type de parapluie, tel que « Animal de compagnie ». Le mot-clé union donne au compilateur une liste définitive d’« animaux de compagnie », qui ne peut pas être étendue.

« Les unions permettent des conceptions que les hiérarchies traditionnelles ne peuvent pas exprimer, en composant n’importe quelle combinaison de types existants dans un contrat unique vérifié par le compilateur », explique la documentation de Microsoft.

Les avantages pour les développeurs incluent une meilleure correspondance de modèles, la possibilité d’écrire des fonctions personnalisées pour les types d’union, une protection contre les types de données malveillants, des abstractions plus fortes et moins d’écriture de code d’erreur passe-partout.

Dans son exposé, Torgersen et l’ingénieur principal de Microsoft, Dustin Campbell, ont démontré comment un syndicat pouvait consolider deux enregistrements différents pour désigner le succès ou l’échec d’un flux d’entrée sur un réseau.

Ils ont présenté deux types d’enregistrements distincts : l’un indiquant le succès à l’aide d’un nombre entier, l’autre un message d’erreur textuel standard. En les regroupant à l’aide du mot-clé union, ils ont créé une seule expression switch pour analyser les résultats.

Sans ce raccourci, ils auraient dû ajouter un message d’erreur à leur instruction switch pour gérer les entrées inconnues, créer un wrapper (qui aurait utilisé plus de mémoire et aurait probablement été plus bogué) ou déployer une bibliothèque tierce pour analyser les résultats.

Alors que les types de données autorisés sont restreints dans les unions, une autre nouvelle fonctionnalité de C# 15, les hiérarchies fermées, apporte un contrôle similaire aux types dérivés hérités. La classe de base utilise le mot-clé fermé pour limiter l’héritage direct strictement aux types dérivés définis dans le même assembly. Les hiérarchies fermées empêcheront la compilation des sous-types tiers, ce qui autrement générerait probablement des erreurs.

Élargir la zone de danger

C# étend également la portée de la définition des opérations désignées par le développeur comme dangereuses.

À l’origine, un bloc de code étiqueté « dangereux » alertait simplement le compilateur qu’il interagissait avec la mémoire de manière potentiellement peu recommandable. Désormais, la portée du mot-clé a été élargie pour « informer les appelants qu’ils ont des obligations qui doivent être remplies pour maintenir la sécurité », a écrit Richard Lander, chef de produit Microsoft, dans un article de blog plus tôt cette année.

La portée étendue donnera au compilateur la possibilité de signaler les opérations dangereuses. Cet effort suit l’exemple de Rust et Swift, où le mot-clé est régi par « une sémantique plus stricte et orientée vers la propagation », a écrit Lander.

D’autres nouvelles fonctionnalités de C# 15 incluent des « arguments d’expression de collection », qui permettent au développeur de transmettre des paramètres, tels que des capacités ou des comparateurs, directement au constructeur de la collection sous-jacente dans la syntaxe de l’expression de collection, à l’aide du mot clé with.

Les développeurs peuvent désormais déclarer des indexeurs dans un bloc d’extension, ainsi qu’ajouter des étiquettes aux instructions break et continue pour un meilleur contrôle via des boucles imbriquées.

Il est à noter que C# persiste même si les priorités de Redmond sont passées de la vente de licences Windows et Office à la vente d’abonnements cloud et à l’intégration de son assistant AI Copilot dans tous les coins. Créé à l’origine par Anders Hejlsberg, Microsoft l’a publié pour la première fois en 2002 comme alternative à Java pouvant fonctionner sur la nouvelle plate-forme .Net de l’entreprise pour Windows. C# allait devenir le pionnier de nouvelles fonctionnalités pour les langages de programmation, telles que les capacités de synchronisation asynchrone, ainsi que l’interface LINQ pour interroger les bases de données et autres sources de données.

Avance rapide de plus de 20 ans et Microsoft continue de mettre régulièrement à jour le langage. Pour tester C# 15, téléchargez un aperçu de .NET 11. ®

A lire également