这个问题已经有了答案:
What does x?.y?.z mean?
3个答案
我在复习一些代码,发现了以下代码行:
List authorIntList = authorIds?.ToList();
在上面的示例中,authorids是一个IEnumerable。上面代码行中
?
的目的是什么?我不确定我以前见过这种图案。它是做什么的?它是在哪个版本的.NET中实现的? 最佳答案
这叫做the "null conditional operator"——也就是说?
和.
在一起——是C 6.0的新特性。意思是,如果authorIds
不是null
,那么它将调用/返回ToList()
。否则,它将返回空值。它基本上是语法上的甜头,所以您不必编写更长的代码,比如List AuthorIntList = authorIds != null ? authorIds.ToList() : null;
。