【发布时间】:2022-01-11 20:28:15
【问题描述】:
List<int> testList;
// <some processing which loads data into testList>
var x = testList![4];
var y = testList!?[3];
编译器不会抛出错误。 x 被解析为 int。 y 被解析为 int?。 有什么作用!运算符在这种情况下的意思(如果后面有一个?)
怎么样!?由编译器解释? 是否在运行时忽略了 null 宽恕运算符?如果 itemsList 在运行时为 null 会发生什么?
可以猜到吗!?被认为是?在运行时?
【问题讨论】:
-
已重新打开问题。我不认为这是关于 null 宽恕运算符的重复问题,而是当您同时使用
!和?时有关运算符优先级的问题。我自己以前没见过,觉得很有趣。想知道 C# 规范对此有何评论。