在项目Roslyn
中,文件 src\Compilers\CSharp\Portable\Syntax\CSharpSyntaxTree.cs
的第 446
行有以下代码:
using (var parser = new InternalSyntax.LanguageParser(lexer, oldTree?.GetRoot(), changes))
?.
是C#语言中的空值传递运算符。它会检查oldTree
是否为null
,如果不是,则调用GetRoot
方法;否则返回null。