【发布时间】:2021-11-14 21:57:01
【问题描述】:
随着 C# 9.0 的发布,引入了 negated null constant 模式。
文档说明:
从 C# 9.0 开始,您可以使用取反的 null 常量模式来检查非 null,如以下示例所示:
if (e is not null) { // ... }
e is not null和e != null除了语法有区别吗?
【问题讨论】:
-
Constant pattern: "编译器保证不会调用用户重载的相等运算符 == ..."
-
有趣的是,您为问题复制的文本是您正在寻找的答案下方的一行
-
哈!!然后得到了答案:) 谢谢,我没有发现。
-
基本上编译器会将其转换为
(object)e!= null,从而确保不涉及讨厌的重载相等运算符 -
“讨厌的重载相等运算符” 我们应该这样称呼它们。总是。