Opérateur C# 6.0 : découverte de la fonctionnalité conditionnelle nulle
C# 6.0 a introduit l'opérateur ?., qui a complètement changé la façon dont les références nulles sont gérées. Cet opérateur résout un problème courant qui peut provoquer des exceptions d'exécution lors de l'accès aux propriétés d'un objet nul ou de l'appel de ses méthodes.
?. Objectif de l'opérateur
L'opérateur?, également appelé opérateur "conditionnel vide", a les fonctions clés suivantes :
Utilisation
?. L'utilisation de l'opérateur est simple :
<code class="language-csharp">if (a?.PropertyOfA != foo) { //somecode }</code>
Dans l'exemple ci-dessus, si a est nul, l'expression a?.PropertyOfA sera évaluée à null et la comparaison avec foo entraînera false, permettant à l'exécution de continuer dans l'instruction if sans générer une référence nulle anormale.
Équivalence
Conceptuellement, l'opérateur ?. peut être équivalent au code suivant :
<code class="language-csharp">if (a != null) { a.PropertyOfA; } else { null; }</code>
Cependant, l'opérateur ?. évite l'évaluation redondante de a et optimise les performances du code.
Exemple d'application
Considérez un scénario dans lequel vous avez un objet FileInfo fi, qui peut ou non être nul. En utilisant l'opérateur ?., vous pouvez éviter les exceptions potentielles :
<code class="language-csharp">FileInfo fi = ...; // fi 可能为空 long? length = fi?.Length; // 如果 fi 为空,则 length 将为空</code>
Dans ce cas, si fi est vide, la longueur sera définie sur null sans lever d'exception.
Conclusion
L'opérateur ?. en C# 6.0 fournit une solution élégante et efficace pour gérer les références nulles, permettant aux développeurs d'écrire du code plus robuste et concis. Il simplifie la structure du code et améliore la sécurité du programme en fournissant à la fois la vérification des valeurs nulles et l'accès aux membres dans une seule expression.
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!