有人可以解释为什么以下引发ArgumentNullException:
static void Main(string[] args) {
IEnumerable<int> lst= null;
var msg = ",lst=" + lst!= null ? String.Join(",", lst) : "null";
Console.WriteLine(msg);
}
而这不是:
static void Main(string[] args) {
IEnumerable<int> lst= null;
var msg = ",lst=" + (lst!= null ? String.Join(",", lst) : "null");
Console.WriteLine(msg);
}
答案 0 :(得分:4)
由于operator precedence您的第一行代码
turbo links 5
相当于
var msg = ",lst=" + lst!= null ? String.Join(",", lst) : "null";
由于var msg = (",lst=" + lst) != null ? String.Join(",", lst) : "null";
为lst
,它会在null
可能是投资Resharper的好时机,看看警告......