这个问题已经有了答案:
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;

10-02 06:30