var a = b?.c.d; 这个表达式不应该总是给出编译错误吗?如果b为null,则通过传播null值,所以c也将为null,因此也需要此运算符。根据我的理解,在表达式中使用此运算符会传播病毒。 但是,Visual Studio 2015和Resharper都没有对我说什么,我在这里错过了什么吗?
如果变量值为Nothing,我们遇到了空条件运算符的意外行为。 下面的代码的行为让我们有点糊涂 Dim l As List(Of Object) = MethodThatReturnsNothingInSomeCases()
If Not l?.Any() Then
'do something
End If
预期的行为是Not l?.Any()是truthy如果l
在执行成员访问之前,我已经知道空条件运算符can be used to test为null。 例如: int? length = customers?.Length; // null if customers is null
Customer first = customers?[0];
如果customers在customers?.Length为null,则customers?.Lengt