C# では null 値を処理するためにどのような演算子が提供されていますか?

WBOY
リリース: 2023-09-23 17:57:02
転載
1166 人が閲覧しました

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

C# には、null 値を処理するための次の 3 つの演算子があります。 -

Null 合体演算子 (??)

を使用すると、値を取得できます。変数の値 (そうでない場合) null、または使用できるデフォルト値を指定します。

これは、C# の次の式 -

string resultOne = value != null ? value : "default_value";
ログイン後にコピー

を次の式 -

string resultTwo = value ?? "default_value";
ログイン後にコピー

に置き換えます。これを示す例を次に示します。

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
   }
}
ログイン後にコピー

Null合体代入演算子(??=)

左側の値がnullでない場合は、その値を返します。それ以外の場合は、右側の値を返します。つまり、変数の現在の値が null の場合、変数を何らかのデフォルト値に初期化できます。

C# の次の式を置き換えます -

if (result == null)
result = "default_value";
ログイン後にコピー

次の式を使用します。

result ??= "default_value";
ログイン後にコピー

この演算子は、遅延計算されるプロパティに役立ちます。例: -

Example

class Tax{
   private Report _lengthyReport;
   public Report LengthyReport => _lengthyReport ??= CalculateLengthyReport();
   private Report CalculateLengthyReport(){
      return new Report();
   }
}
ログイン後にコピー

Null 条件演算子 (?.)

この演算子を使用すると、インスタンスでメソッドを安全に呼び出すことができます。インスタンスが null の場合は、NullReferenceException をスローする代わりに null を返します。それ以外の場合は、メソッドを呼び出すだけです。

C# の次の式を置き換えます -

string result = instance == null ? null : instance.Method();
ログイン後にコピー

次の式を使用します -

string result = instance?.Method();
ログイン後にコピー

次の例を考えてみましょう。

using System;
string input = null;
string result = input?.ToString();
Console.WriteLine(result); // prints nothing (null)
ログイン後にコピー

リアルタイム デモンストレーション

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)
   }
}
ログイン後にコピー

出力

default_choice
default_choice
ログイン後にコピー

以上がC# では null 値を処理するためにどのような演算子が提供されていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート