Opérateur ? de C# 6.0 : simplification de la gestion des valeurs nulles
C# 6.0 a introduit l'opérateur ?., qui apporte une grande commodité au traitement des valeurs nulles. Cet opérateur, souvent appelé opérateur conditionnel nul, fournit un moyen concis et sûr d'accéder aux propriétés d'un objet nullable ou d'appeler ses méthodes.
Regardons l'extrait de code 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>
Décomposons le fonctionnement de cet opérateur :
Essentiellement, l'opérateur ?. agit comme une protection contre les exceptions de référence nulle. Il vous permet d'accéder aux propriétés d'un objet nullable ou d'appeler ses méthodes sans planter l'application.
Considérez cette syntaxe alternative :
<code class="language-csharp">string bar = (a == null ? null : a.PropertyOfA); if (bar != foo) { ... }</code>
Bien que cette approche aboutisse au même résultat, elle implique des vérifications nulles et des affectations conditionnelles distinctes. L'opérateur ?. fournit une solution plus concise et élégante.
De plus, l'opérateur ?. peut changer le type d'expression. Par exemple, FileInfo.Length est une propriété longue. Cependant, si vous utilisez l'opérateur ?. :
<code class="language-csharp">FileInfo fi = ...; // fi 可能为空 long? length = fi?.Length; // 如果 fi 为空,length 将为 null</code>
Vous vous retrouvez avec une expression de type long? , où le point d'interrogation indique que la valeur peut être nulle. Cela élimine le besoin de vérifications nulles explicites, simplifiant votre code et le rendant plus lisible.
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!