CSharp 6

De Banane Atomic
Aller à la navigationAller à la recherche

Opérateur conditionnel null ?.

Interpolation de chaînes

Initialiseurs de propriétés automatiques

  • Permet d'initialiser les propriétés automatiques à la déclaration et non plus dans le constructeur.
  • Permet d'avoir des propriétés automatiques en lecture seule.
Csharp.svg
// propriété initialisée à 45, plus besoin de le faire dans le constructeur
public int MaPropriété { get; set; } = 45;

// propriété en lecture seule initialisée à 45
public int MaPropriété { get; } = 45;
// propriété en lecture seule, elle pourra néanmoins être initialisée dans le constructeur 
public int MaPropriété { get; }

Imports statiques

Permet d'importer tous les membres statiques d'une classe.
Ici on importe les membres statiques de System.Console, on peut donc appeler la méthode WriteLine sans la préfixer de Console comme si elle était une méthode statique de la classe courante.

Csharp.svg
using System;
using static System.Console;
WriteLine("Hello!");

// équivalent
using System;
Console.WriteLine("Hello!");

Expression-bodied members

Permet une écriture plus concise des propriétés et méthodes constitués uniquement d'une instruction return.

Csharp.svg
public string NomComplet => $"{Prénom} {Nom}";

// équivalent à
public string NomComplet
{
    get
    {
        return $"{Prénom} {Nom}";
    }
}

Initialiseurs de membres indexés

Csharp.svg
new Dictionary<string, int>
{
    ["a"] = 1,
    ["b"] = 2
};

// équivalent à
new Dictionary<string, int>
{
    { "a", 1 },
    { "b", 2 }
};

await dans les blocs catch et finally

Filtres d'exception

Csharp.svg
catch(IOException ex) if (ex.HResult == 0x80070020)
{
}
catch(IOException ex) if (ex.HResult == 0x80070035)
{
}

nameof

Renvoi le nom d'un symbole sous la forme d'une chaîne de caractères

Csharp.svg
string s = nameof(Console.Write); // renvoie "Write"