Quels opérateurs C# fournit-il pour gérer les valeurs nulles ?

WBOY
Libérer: 2023-09-23 17:57:02
avant
1161 Les gens l'ont consulté

C# 提供哪些运算符来处理空值?

C# a les trois opérateurs suivants pour gérer les valeurs nulles -

Null Coalescing Operator (??)

vous permet d'obtenir la valeur d'une variable si elle n'est pas nulle, ou de spécifier une valeur par défaut qui peut être utilisé.

Il remplace l'expression suivante -

string resultOne = value != null ? value : "default_value";
Copier après la connexion

en C# par l'expression suivante -

string resultTwo = value ?? "default_value";
Copier après la connexion

Voici un exemple illustrant cela.

Exemple

using System;
class Program{
   static void Main(){
      string input = null;
      string choice = input ?? "default_choice";
      Console.WriteLine(choice); // default_choice
      string finalChoice = choice ?? "not_chosen";
      Console.WriteLine(finalChoice); // default_choice
   }
}
Copier après la connexion

Opérateur d'affectation de fusion nulle (??=)

Renvoie la valeur à gauche si elle n'est pas nulle. Sinon, il renvoie la valeur de droite. En d'autres termes, cela vous permet d'initialiser une variable avec une valeur par défaut si sa valeur actuelle est nulle.

Il remplace l'expression suivante en C# -

if (result == null)
result = "default_value";
Copier après la connexion

Utilisez l'expression suivante.

result ??= "default_value";
Copier après la connexion

Cet opérateur est utile pour les propriétés calculées paresseusement. Par exemple -

Exemple

class Tax{
   private Report _lengthyReport;
   public Report LengthyReport => _lengthyReport ??= CalculateLengthyReport();
   private Report CalculateLengthyReport(){
      return new Report();
   }
}
Copier après la connexion

Opérateur conditionnel nul (?.)

Cet opérateur vous permet d'appeler en toute sécurité des méthodes sur une instance. Si l'instance est nulle, renvoyez null au lieu de lancer une NullReferenceException. Sinon, il appelle simplement la méthode.

Il remplace l'expression suivante -

string result = instance == null ? null : instance.Method();
Copier après la connexion

en C# par l'expression suivante -

string result = instance?.Method();
Copier après la connexion

Considérez l'exemple suivant.

Exemple

using System;
string input = null;
string result = input?.ToString();
Console.WriteLine(result); // prints nothing (null)
Copier après la connexion

Exemple

Démonstration en temps réel

using System;
class Program{
   static void Main(){
      string input = null;
      string choice = input ?? "default_choice";
      Console.WriteLine(choice); // default_choice
      string finalChoice = choice ?? "not_chosen";
      Console.WriteLine(finalChoice); // default_choice
      string foo = null;
      string answer = foo?.ToString();
      Console.WriteLine(answer); // prints nothing (null)
   }
}
Copier après la connexion

Sortie

default_choice
default_choice
Copier après la connexion

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:tutorialspoint.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal