我有以下代码,它工作正常:
var firstChild = token.First as JProperty;
bool isHref = token.Children().Count() == 1
&& firstChild?.Name == "href";
我想让字符串比较不区分大小写,所以我将其更改为:
var firstChild = token.First as JProperty;
bool isHref = token.Children().Count() == 1
&& firstChild?.Name.Equals("href", StringComparison.OrdinalIgnoreCase);
现在编译器给了我一个错误:
运算符 && 不能应用于 'bool' 和 'bool?' 类型的操作数?
我可以通过合并为 false 来修复错误
bool isHref = token.Children().Count() == 1
&& (firstChild?.Name.Equals("href", StringComparison.OrdinalIgnoreCase) ?? false);
但我很好奇为什么编译器不喜欢第一个空条件语法。