C# Language Opérateur Null-Conditionnel


Exemple

Le ?. l'opérateur est le sucre syntaxique pour éviter les vérifications nulles verbeuses. Il est également connu sous le nom de l' opérateur de navigation sécurisé .


Classe utilisée dans l'exemple suivant:

public class Person
{
    public int Age { get; set; }
    public string Name { get; set; }
    public Person Spouse { get; set; }
}

Si un objet est potentiellement nul (comme une fonction renvoyant un type de référence), l'objet doit d'abord être vérifié pour la valeur null afin d'éviter une éventuelle NullReferenceException . Sans l'opérateur null-conditionnel, cela ressemblerait à ceci:

Person person = GetPerson();

int? age = null;
if (person != null)
    age = person.Age;

Le même exemple en utilisant l'opérateur null-conditionnel:

Person person = GetPerson();

var age = person?.Age;    // 'age' will be of type 'int?', even if 'person' is not null

Enchaînement de l'opérateur

L'opérateur conditionnel null peut être combiné sur les membres et sous-membres d'un objet.

// Will be null if either `person` or `person.Spouse` are null
int? spouseAge = person?.Spouse?.Age;

Combinaison avec l'opérateur de coalescence nulle

L'opérateur null-conditionnel peut être combiné avec l' opérateur null-coalescing pour fournir une valeur par défaut:

// spouseDisplayName will be "N/A" if person, Spouse, or Name is null
var spouseDisplayName = person?.Spouse?.Name ?? "N/A";