看到类似的问题后,我想知道以下表达式是否...
if (attribute != null && attribute.Description == input)
...与以下空传播变体的行为(几乎)相同?
if (attribute?.Description == input)
到目前为止,我只能确定以下(某种程度上)差异:
input
如果是不可为空的类型,则不可能- 万一
input
是它自己null
,行为就会改变
我错过了什么吗?还是在行为上有其他差异?
编辑:最后,我为第一个片段找到的唯一故障安全替代方案是:
if (attribute?.Description?.Equals(input) ?? false)