当两个args都为null时,C#是Equals()的简写

Kos*_*Kos 9 c# null equals

一个简单的问题:

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

我应该重复一下这句话:

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

}
Run Code Online (Sandbox Code Playgroud)

或者这种情况有更优雅的习语吗?

Jon*_*eet 22

对:

if (object.Equals(left, right))
Run Code Online (Sandbox Code Playgroud)

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

if (Equals(left, right))
Run Code Online (Sandbox Code Playgroud)

(我个人更喜欢额外的清晰度.)

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

  • @KendallFrey:我不明白这个问题.为什么你认为它应该*不*编译? (4认同)