Maison > développement back-end > C++ > Quel est le mystère derrière l'opérateur conditionnel nul de C # 6.0 (?.)?

Quel est le mystère derrière l'opérateur conditionnel nul de C # 6.0 (?.)?

Susan Sarandon
Libérer: 2025-01-25 15:43:11
original
942 Les gens l'ont consulté

What's the Mystery Behind C# 6.0's Null-Conditional Operator (?.)?

Le secret de l'opérateur point d'interrogation C# 6.0

L'opérateur ?. introduit dans C# 6.0 a suscité l'intérêt des développeurs. Laissez-nous vous dévoiler son mystère :

Ce qu'il fait :

L'opérateur

?. est appelé l'opérateur "conditionnel vide". Il vous permet d'accéder en toute sécurité aux propriétés ou d'appeler des méthodes d'un objet potentiellement nul sans provoquer d'exceptions NullReferenceException ennuyeuses.

Comment ça marche :

L'opérateur

?. évalue le premier opérande. S'il est nul, l'expression s'arrête et renvoie null. Cependant, si le premier opérande n’est pas nul, il procède alors à l’évaluation du deuxième opérande, accessible en tant que membre du premier opérande.

Exemple :

Considérez l'extrait de code suivant :

public class A {
   public string PropertyOfA { get; set; }
}

...

var a = new A();
var foo = "bar";
if(a?.PropertyOfA != foo) {
   //somecode
}
Copier après la connexion

Ici, si a est nul, a?.PropertyOfA renverra gracieusement null au lieu de lever une exception. Cela vous permet d'utiliser l'opérateur == de la chaîne pour la comparer à foo et continuer à exécuter l'instruction if sans aucun problème.

Code équivalent :

L'opérateur

? peut être considéré comme une version abrégée du code suivant :

string bar = (a == null ? null : a.PropertyOfA);
if (bar != foo)
{
    ...
}
Copier après la connexion

Tapez Notes :

Il est à noter que l'opérateur ?. peut également changer le type d'expression. Par exemple, FileInfo.Length est une propriété de type long. Cependant, utiliser ?. entraînera une expression de type long? :

FileInfo fi = ...; // fi 可能为 null
long? length = fi?.Length; // 如果 fi 为 null,length 将为 null
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal