C# には、null 値を処理するための次の 3 つの演算子があります。 -
を使用すると、値を取得できます。変数の値 (そうでない場合) 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 の場合、変数を何らかのデフォルト値に初期化できます。
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 の場合は、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 サイトの他の関連記事を参照してください。