下面有一个表达式
a??b
表达式的结果是:若a为null,则表达式的结果为b,若a不为null,则表达式的结果为a。这个运算符非常好理解,正确运用这个运算符可以对某些语句起到简化的作用。
例如在c#中,若对一个空对象调用方法或者属性或者对其进行foreach遍历会引发异常,所以我们经常在对一个可能为空的对象进行操作时,通常需要不厌其烦的先判断是否为空。这种情况若利用??运算符,就可以简洁的解决这个问题。
示例1
var carList = (from a in db.Car where a.CarNumberPlate.StartsWith("吉A") select a).ToList();
if (carList!=null)
{
foreach (var item in carList)
{
//进行别的操作
}
}
可以简化成
var carList = (from a in db.Car where a.CarNumberPlate.StartsWith("吉A") select a).ToList() ?? new List<Car>();
foreach (var item in carList)
{
//进行别的操作
}