首页 > 解决方案 > “不为空”和“!=空”有什么区别?

问题描述

随着 C# 9.0 的发布,引入了否定空常量模式。

该文档指出:

从 C# 9.0 开始,您可以使用否定 null 常量模式来检查非 null,如以下示例所示:

if (e is not null)
{
    // ...
}

和 之间有什么区别e is not nulle != null除了语法吗?

标签: c#c#-9.0

解决方案


唯一的区别(除了语法)是,编译器保证在使用is not null而不是!= null(或is null代替== null)时不会调用用户重载的运算符。


推荐阅读