Maison > développement back-end > C++ > Comment l'opérateur C # 6.0 NULL-CODITIONNEL (?.) Simplifiez-vous la manipulation nul?

Comment l'opérateur C # 6.0 NULL-CODITIONNEL (?.) Simplifiez-vous la manipulation nul?

Patricia Arquette
Libérer: 2025-01-25 15:26:08
original
638 Les gens l'ont consulté

How Does the C# 6.0 Null-Conditional Operator (?. ) Simplify Null Handling?

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

Décomposons le fonctionnement de cet opérateur :

  • Il évalue d'abord le premier opérande (a) et vérifie s'il est vide. Si a est vide, l’expression entière est évaluée à null et aucune autre évaluation n’a lieu.
  • Si a n'est pas vide, continuez à évaluer le deuxième opérande (PropertyOfA) en tant qu'accès membre de a . Dans ce cas, il accède à la propriété PropertyOfA de a.
  • Le résultat de l'expression est soit une valeur nulle (si a est vide), soit la valeur de a.PropertyOfA.

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

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

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!

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