Explication détaillée de l'opérateur conditionnel nul C# 6.0 : ?.
L'opérateur ?. (opérateur conditionnel nul) introduit dans C# 6.0 a attiré l'attention des développeurs. Il fournit une manière élégante de gérer les références nulles, ce qui donne un code plus propre et plus efficace.
?. Explication détaillée des opérateurs
Le rôle principal de l'opérateur? est d'empêcher d'éventuelles exceptions de référence nulle. Son mécanisme de fonctionnement est le suivant :
Application pratique : Éviter les exceptions de référence nulle
Considérons l'exemple suivant :
<code class="language-csharp">public class A { public string PropertyOfA { get; set; } } ... var a = new A(); var foo = "bar"; if(a?.PropertyOfA != foo) { //somecode }</code>
Dans cet exemple, l'opérateur ?. gère avec élégance le cas où a peut être vide. Si a est vide, a?.PropertyOfA renverra null, évitant ainsi NullReferenceException provoquée par des comparaisons ultérieures. Si a n'est pas vide, a.PropertyOfA est évalué et comparé à foo.
Similitude avec les instructions conditionnelles
L'opérateur conditionnel vide est comme une instruction conditionnelle simplifiée :
<code class="language-csharp">string bar = (a == null ? null : a.PropertyOfA); if (bar != foo) { ... }</code>
Cependant, l'opérateur ?. offre une alternative plus propre et plus efficace.
Remarques sur la conversion de type
Il convient de noter que l'utilisation de l'opérateur ?. peut affecter le type d'expression. Par exemple, si une propriété renvoie des données de type long, l'utilisation de l'opérateur conditionnel nul entraînera une expression de type long?:
<code class="language-csharp">FileInfo fi = ...; // fi可能为空 long? length = fi?.Length; // 如果fi为空,length将为空</code>
Résumé
L'opérateur ?. en C# 6.0 fournit un moyen pratique et sûr de gérer les références nulles, évitant ainsi le besoin de vérifications nulles explicites et une gestion fastidieuse des erreurs dans de nombreux scénarios. Grâce à cette fonctionnalité puissante, les développeurs peuvent écrire du code plus robuste et plus efficace, réduisant ainsi le risque d'exceptions inattendues et améliorant la lisibilité du code.
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!