Null 条件运算符(猫王运算符)可以防止 IndexOutOfRangeException 吗?
Can Null-conditional operator (Elvis operator) prevent IndexOutOfRangeException?
我正在阅读 C#6.0
中介绍的空条件运算符。
我链接了 ?.
运算符并遇到了以下函数
double SumNumbers(List<double[]> setsOfNumbers, int indexOfSetToSum)
{
return setsOfNumbers?[indexOfSetToSum]?.Sum() ?? double.NaN;
}
它也可以处理 IndexOutOfRangeException
还是我还必须添加丑陋的 try-catch
?
不,只是因为它是 null-conditional
运算符,而不是 indexoutofrange-conditional
运算符。
解决该问题的一种方法是使用 ElementAtOrDefault 方法检查索引,如果超出范围则 returns null。
我正在阅读 C#6.0
中介绍的空条件运算符。
我链接了 ?.
运算符并遇到了以下函数
double SumNumbers(List<double[]> setsOfNumbers, int indexOfSetToSum)
{
return setsOfNumbers?[indexOfSetToSum]?.Sum() ?? double.NaN;
}
它也可以处理 IndexOutOfRangeException
还是我还必须添加丑陋的 try-catch
?
不,只是因为它是 null-conditional
运算符,而不是 indexoutofrange-conditional
运算符。
解决该问题的一种方法是使用 ElementAtOrDefault 方法检查索引,如果超出范围则 returns null。