c# - == 是 Equal() 方法的快捷方式吗?

标签 c# java equals

在 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/

相关文章:

c# - 合并两个自定义类返回重复项

c# - SandCaSTLe 中的实体文件报告

c# - 空字符串的表单验证

Java 和 SQL 准备语句错误(参数索引超出范围)

java - 为什么 Map 的 containsKey() 只调用 hashCode()?

java - 比较 TreeSet 和 HashSet 的对象

c# - 使用必应 map API 的应用程序

c# - 如何使用 C# 在 .NET 中获取格式化的 JSON?

java - 如何按需停用jnativehook?

java - DatagramSocket如何每次都收包而不卡住