在 Java 语言中,我认为当你进行类似 Object1 == Object2;
的比较时,默认情况下它会比较对象的 Hashcode 除非你重写 equal() 方法,因为 ==
比较器是equal 方法的一种快捷方式。
如果我错了,请纠正我!
问题是,在 C# 中是否相同?
最佳答案
在 C# 中,==
从不直接调用 x.Equals(y)
(除非您包含 string.Equals(x,y)
):
- 对于某些内置类型,执行直接比较(
int
s 等具有操作码) - 如果显式
==
运算符被定义,即调用 Nullable<T>
,应用“解除”规则,然后==
如果两者都不为空,则应用于值- 对于类,默认是引用相等
- 对于结构,没有默认值
==
实现
关于c# - == 是 Equal() 方法的快捷方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5075603/