Top 5 des nouveautés dans C# 10 et .NET 6 avec Visual Studio 2022

Top 5 des nouveautés dans C# 10 et .NET 6 avec Visual Studio 2022

Nouveau modèle pour les applications console

À compter de .NET 6 les nouveaux projets console génèrent un code différent à la création :

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

C’est grâce aux nouvelles fonctionnalités du C# que le code a été simplifiée, auparavant voici à quoi ressemblait une application console :

using System;
using System.Collections.Generic;
using System.Linq;

namespace MyApp
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

Ces deux formes représentent le même programme et les deux syntaxes sont valides avec C# 10.

La directive using globale

Avec la version 10 du langage C# il est désormais possible d’inclure un espace de nom de manière globale dans un projet.

On peut par exemple écrire ceci si je veux utiliser des fonctionnalités JSON au sein de mon programme :

global using System.Text.Json;

Espace de noms à portée de fichier

Nous avons maintenant la possibilité de déclarer un namespace sur une seule ligne.

En l’écrivant ainsi, toutes les déclarations qui suivent feront partie de cet espace de nom et la lisibilité du code sera accrue.

namespace MonApplication.Models;

// MonApplication.Models.User
class User
{

}

Chaîne interpolées constantes

En C# 10, les chaînes de caractères constantes peuvent être initialisées à l’aide de l’ interpolation de chaîne si ce sont eux-mêmes des chaînes constantes.

const string path = "C:/dossier";
const string filename = "fichier.txt";

const string PATH = $"{path}/{filename}";

Assignation et déclaration dans la même déconstruction

Cette modification du langage C# nous permet de déclarer une variable directement dans une déconstruction sans passer par une variable préalablement créée.

int id = 0;
(id, string name) = user;