Maison  >  Article  >  développement back-end  >  Quels opérateurs C# fournit-il pour gérer les valeurs nulles ?

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

WBOY
WBOYavant
2023-09-23 17:57:021159parcourir

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";

en C# par l'expression suivante -

string resultTwo = value ?? "default_value";

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
   }
}

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";

Utilisez l'expression suivante.

result ??= "default_value";

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();
   }
}

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();

en C# par l'expression suivante -

string result = instance?.Method();

Considérez l'exemple suivant.

Exemple

using System;
string input = null;
string result = input?.ToString();
Console.WriteLine(result); // prints nothing (null)

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)
   }
}

Sortie

default_choice
default_choice

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:Techniques de bouclage en C#Article suivant:Techniques de bouclage en C#