Maison > développement back-end > C++ > Comment l'opérateur de conditionnement nulle de C # 6.0 (?.) Empêche-t-il NullReferenceExceptions?

Comment l'opérateur de conditionnement nulle de C # 6.0 (?.) Empêche-t-il NullReferenceExceptions?

Barbara Streisand
Libérer: 2025-01-25 15:22:09
original
306 Les gens l'ont consulté

C# 6.0 Null-Conditional Operator (?.)

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 :

  • Vérification nulle : Il évalue si le premier opérande (par exemple a) est nul. Si a est vide, l'opérateur termine l'évaluation et renvoie null.
  • Accès membre : Si a n'est pas nul, l'opérateur continue l'évaluation et accède au membre du premier opérande (par exemple a.PropertyOfA).

Utilisation

?. L'utilisation de l'opérateur est simple :

<code class="language-csharp">if (a?.PropertyOfA != foo) {
   //somecode
}</code>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
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