Ajouter un commentaire

Une nouvelle préversion de C# 11 dans Visual Studio 2022 17.3

Par:
fredericmazue

mer, 24/08/2022 - 09:13

En plus d’apporter .NET MAUI, Visual Studio 2022 17.3 qui est sorti ce mois d’août apporte de nouvelles fonctionnalités de C# 11 en préversion, comme l’avaient fait avant lui Visual Studio 2022 17.1 et Visual Studio 2022 17.

Vient tout d’abord une amélioration de l’initialisation des objets avec mes membres requis. Soit cette classe d’exemple :

public class Person
{
    public string FirstName { get; init; }
    public string LastName {get; init; }
}

Les appelants doivent utiliser des initialiseurs d'objet pour définir les valeurs des propriétés FirstName et LastName. Mais avant la version 17.3, le compilateur ne pouvait pas obliger les appelants à définir ces propriétés. Il est désormais possible d’ajouter le modificateur required aux déclarations de membres :

public class Person
{
    public required string FirstName { get; init; }
    public required string LastName {get; init; }
}

Ainsi tous les appelants doivent inclure des initialiseurs d'objet pour les propriétés FirstName et LastName sinon le compilateur émet une erreur. 

Si la classe Person a été écrite pour une version antérieure et inclut un constructeur qui définit les propriétés, vous pouvez toujours utiliser les membres requis. Vous devez annoter tous les constructeurs existants avec l'attribut  SetsRequiredMembers :

public class Person
{
    public required string FirstName { get; init; }
    public required string LastName {get; init; }

    [SetsRequiredMembers]
    public Person(string firstName, string lastName)
    {
        this.FirstName = firstName;
        this.LastName = lastName;
    }

    public Person() {}
}

Cette nouvelle préversion de C# 11 apporte aussi la prise en charge mathématique générique. Grâce à elle, vous pouvez écrire des algorithmes une seule fois pour plusieurs types numériques. Ces fonctionnalités facilitent l'utilisation de C# et .NET pour les statistiques, l'apprentissage automatique et d'autres applications à forte intensité mathématique. 

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
     J  DDD    SSS   L     V     V 
J D D S L V V
J D D SSS L V V
J J D D S L V V
JJJ DDD SSSS LLLL V