Introduction aux mathématiques génériques dans .NET 7 [9]

La dernière version de .NET, la version 7.0, apporte quelques améliorations aux mathématiques génériques. En particulier, l’espace de noms de la classe de base System.Numerics inclut désormais certaines interfaces qui permettent d’implémenter des opérations mathématiques pour travailler avec n’importe quel type de nombre. Cela signifie que les calculs peuvent maintenant être effectués avec des nombres entiers et des fractions de n’importe quelle longueur en bits.

De plus, certaines opérations mathématiques génériques marquées comme expérimentales dans .NET 6.0 sont désormais prêtes pour la production avec .NET 7.0. Ces opérations incluent INumberNombreBaseIComparisonOperatorsIopérateurs supplémentairesIMultiplyOperatorset ISubtractionOperators. Un nouveau type de nombre, System.Int128 (entier, 16 octets), a également été introduit dans .NET 7.0.

La liste suivante montre un exemple de calcul mathématique générique dans la méthode Calc() et une extraction générique d’un nombre à partir d’une chaîne dans ParseNumber(). La méthode Calc() utilise la nouvelle interface avec des résumés statiques, INumber.

Dans la méthode Run(), divers calculs sont effectués à l’aide de différents types numériques, notamment System.Byte, System.Int32, System.Int128, System.Single, System.Double, System.Decimal et System.Half. La méthode ParseNumber() extrait les nombres des chaînes.

La contribution du langage de programmation C# à ce développement est la possibilité de définir des membres abstraits statiques dans les interfaces. Ce modificateur est expérimentalement possible depuis C# 10.0 et fait officiellement partie de la syntaxe du langage depuis C# 11.0. Microsoft utilise ce modificateur dans les classes de base comme INumberBase.

Dans l’ensemble, les améliorations apportées aux mathématiques génériques dans .NET 7.0 offrent plus de flexibilité et de précision aux développeurs travaillant avec des données numériques.