Equals() 的 C# 简写,当两个参数都可以为空时

本文关键字:参数 两个 都可以 简写 Equals | 更新日期: 2023-09-27 18:32:26

一个简单的问题:

我想使用虚拟 Equals() 方法(不是 ==)比较两个对象。两者都可以为空。

我应该重复这一连串的话吗:

if ((left == null && right == null) || (left != null && left.Equals(right)) {
}

还是有更优雅的成语来形容这种情况?

Equals() 的 C# 简写,当两个参数都可以为空时

是的:

if (object.Equals(left, right))

甚至没有明确表示它正在调用静态方法:

if (Equals(left, right))

(就个人而言,我更喜欢额外的清晰度。

静态object.Equals方法没有非常好的文档,但它完全符合您的要求:)