tsu*_*sul 1 c# null-conditional-operator
考虑以下代码:
IEnumerable<int> xx = null;
var tt = xx?.Where(x => x > 2).Select(x => x.ToString());
Run Code Online (Sandbox Code Playgroud)
它分配null给tt. 问题是:为什么它可以正常工作?
我想我必须?.在 Select as ?.Where(...)returns之前使用null。此外,如果我将第二行分成两行:
IEnumerable<int> xx = null;
var yy = xx?.Where(x => x > 2);
var zz = yy.Select(x => x.ToString());
Run Code Online (Sandbox Code Playgroud)
ArgumentNullException第三行会有yy == null。
有什么魔力?:)
如果这是因为短路,我从没想过它会像这样。