为什么这段代码会抛出ArgumentNullException
:
string text = null;
var x = text?.Split('#');
var y = x.ElementAtOrDefault(1);
Run Code Online (Sandbox Code Playgroud)
但这并没有:
string text = null;
var z = text?.Split('#').ElementAtOrDefault(1);
Run Code Online (Sandbox Code Playgroud)
在第一个片段中,我必须使用空传播运算符?
:
string text = null;
var x = text?.Split('#');
var y = x?.ElementAtOrDefault(1);
Run Code Online (Sandbox Code Playgroud)
但在第二种情况下不需要这样做:
var z = text?.Split('#')?.ElementAtOrDefault(1);
Run Code Online (Sandbox Code Playgroud)
c# ×1