c# - “不为空”和“!=空”有什么区别?
问题描述
随着 C# 9.0 的发布,引入了否定空常量模式。
该文档指出:
从 C# 9.0 开始,您可以使用否定 null 常量模式来检查非 null,如以下示例所示:
if (e is not null) { // ... }
和 之间有什么区别e is not null
,e != null
除了语法吗?
解决方案
唯一的区别(除了语法)是,编译器保证在使用is not null
而不是!= null
(或is null
代替== null
)时不会调用用户重载的运算符。
推荐阅读
- python - Python 相当于 Matlab 的“什么”功能?
- arrays - 重新调整数组后如何将数组写入一系列单元格?
- flutter - Flutter 无法从 master 切换到 dev 通道
- python-3.x - 如何抓取表格及其链接
- bootstrap-4 - 使用 Bootstrap 4,包含“描述列表”的卡片的宽度随着列表项的增加而增加
- python - Python将多个值返回到另一个函数
- javascript - 如何使用文档优化此 java 脚本代码?
- c++ - Visual Studio C++ 运行时错误:抛出异常:读取访问冲突。_Pnext 为 0xDDDDDDE1
- php - Laravel 在编辑页面中选择标签
- java - 如何在 ResponseEntity 中不返回空值?