我有这个条件空条件运算符是否返回false如果为空?
if (item?.Value2?.GetType() != typeof(string) && item.get_Value() == 0)
我相信,如果项目是空的?.
操作将返回null,我相信会被解析为false
导致病情短路和一切都会好起来(item.get_Value()
将不会被调用)
但是我不能肯定,我想也许我需要做的是,像这样
if (item?.Value2?.GetType() ?? 0 != typeof(string) && item.get_Value() == 0)
但我认为这可能是矫枉过正,是第一种安全的潜在空引用异常吗?
没有必要对“信仰”的编程。你可以随时启动编译器并测试它。 –
是一个单元格Excel范围项目?你想检查单元格值是否为0或显示的格式文本是否为“0”?这是矫枉过正,缺少很多边缘案例。 – Slai
为什么不只是1. [阅读文档](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-conditional-operators)和/或2.尝试一下亲眼看看? –