「ヌル伝播演算子」、「C#Essentials」ではヌル条件演算子として変換されます。
値がnullのメソッドを呼び出すと、実行時にSystem.NullReferenceException例外がスローされます。これは通常、プログラムロジックにエラーがあることを示します。メンバーを呼び出す前にnull値をチェックするこのパターンの頻度が高いことを考えると、C#6.0ではより単純化されたnull条件演算子?..が導入されました。
null条件演算子は、メソッドまたはプロパティを呼び出す前にオペランドがnullかどうかをチェックし、nullの場合、メソッドグループは実行されません。
private bool IsOk(List<int> rooms)
{
return rooms.Count > 0;
}
上記の部屋が空の場合、例外が報告されます。
空の処理を行うには:
private bool IsOk(List<int> rooms)
{
if (rooms != null)
{
return rooms.Count > 0;
}
return false;
}
「null-propagation演算子」を使用して、次のように記述します。
private bool IsOk(List<int> rooms)
{
return rooms?.Count > 0;
}
例二:
A?.Invoke("Hehe");
上記の例は、
if(A == null)
{
//不执行
}
else
{
A.Invoke("Hehe");
}