Langage C# – L’opérateur de nullité conditionnelle

En 2015, dans la version 6 du langage C#, Microsoft a proposé une nouveauté intitulée « l’opérateur de nullité conditionnelle », caractérisée par le symbole « ? ». Quelle est son utilité ?
Tout développeur C# a déjà eu besoin de tester, qu’un objet ou qu’une chaîne de caractères est différent de Null, avant de pouvoir lui appliquer un membre (attribut, propriété, méthode, événement) afin d’éviter le levée d’une exception de type NullReferenceException :
[cc lang= »csharp »]
if (sData != null)
{
int i = sData.Length;
}
[/cc]
Cet opérateur permet de simplifier l’écriture de ces tests.

Voici un premier exemple. Si sData est de type string, alors :
[cc lang= »csharp »]
int? i = sData?.Length;
[/cc]
signifie que la variable i contient le nombre de caractères contenus dans variable sData si elle est différente de null, ou alors la valeur null dans le cas contraire.

Voici un second exemple. Si oListeClient est une liste d’objets de type Client, alors :
[cc lang= »csharp »]
int? i = oListeClients?.Count ?? 0;
[/cc]
signifie que la variable i contient la valeur 0 si la collection oListeClients vaut null, ou le nombre de clients qu’elle contient dans le cas contraire.

Étiquettes :

About: James RAVAILLE

Travaillant avec la plateforme Microsoft .NET depuis 2002, j'alterne les missions de formation et d'ingénierie avec cette plateforme. J'écris ce blog pour transmettre mes connaissances à tout développeur, qu'il soit débutant ou expérimenté.