C#
 Computer >> コンピューター >  >> プログラミング >> C#

null値を処理するために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";

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

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

  1. PHPとMySQLで「ブール」値を処理する方法は?

    MySQLバージョン8.0.12を使用しています。まず、MySQLのバージョンを確認しましょう: mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12    | +-----------+ 1 row in set (0.00 sec) MySQLでブール値を処理するには、BOOL、BOOLEAN、またはTINYINT(1)を使用できます。 BOOLまたはBOOLEANを使用する場合、MySQLはそれを内部でTINYINT(1)に変換します。 BOOLまたはBOOLE

  2. ヒットマン詐欺:それは何であり、それに対処する方法

    「ヒットマン」詐欺は、おそらく人々がインターネット上で金銭を強要する最も古い方法の1つです。ただし、他のすべての兄弟とは一線を画す1つの特定の点があります。それが示す重力には、犠牲者の人生に対する試みが含まれているとされています。深刻ではないように思われるかもしれませんが(結局のところ、迷惑メールとしてカウントされます)、この特定のユニークな側面により、ヒットマン詐欺はごく少数の人々が適切に処理するものになります。ヒットマン詐欺がどのように見えるか、なぜそれらが非常に効果的であるか、そして人々がそれらに対して何ができるか(そしてすべきか)を理解することが重要です。 ヒットマン詐欺とは何ですか?