x is null 与 x == null
在 C# 中,使用 == 和 is 比较对象与 null 传统上是类似的。然而,C# 7 引入了一个新的运算符 is null,这就提出了一个问题:与传统的 == null 相比,使用它有什么优势吗?
语义
与流行的看法相反,x == null 和 x is null 的语义并不相同。虽然它们都将对象与 null 进行比较,但与 null 以外的常量进行比较时,它们的行为有所不同。
is null 的优点
is null 的一个优点是它的能力在比较期间考虑对象的类型。例如:
Test(1); void Test(object o) { if (o is 1) Console.WriteLine("a"); else Console.WriteLine("b"); }
在此示例中,is 运算符允许将 o 与常量 1 进行比较,同时考虑到它们各自的类型。
何时使用 is null
通常,在处理除 null 之外的常量时,特别是在考虑时, x 为 null 是第三个意思类型。对于仅涉及 null 的比较,== null 和 is null 具有相同的目的。
何时使用 == null
== null 仍然是一个可靠的选择涉及 null 的比较。当不需要考虑对象类型时,通常使用 == null。
更新
Roslyn 编译器已修改为对齐 == 和 的行为在没有重载相等运算符的情况下为 null。因此,它们现在都优化为更高效的 == 行为。但是,如果存在重载的相等运算符,则 is null 和 == null 的行为会有所不同。
以上是C# 中的'x is null”与'x == null”:什么时候应该使用哪个?的详细内容。更多信息请关注PHP中文网其他相关文章!