gpt4 book ai didi

C# == 操作符具体是干什么的?

转载 作者:太空狗 更新时间:2023-10-29 22:49:16 25 4
gpt4 key购买 nike

在 c# 中,当您在两个对象上使用“==”运算符进行比较时,后台究竟发生了什么?它只是比较地址吗?还是类似于 Equals() 或 CompareTo() 之类的东西?

PS:java中的“==”运算符呢?它的行为是否相同?

最佳答案

据我所知:

  • 它按值(相等)比较值类型
  • 它通过引用(身份)比较引用类型
  • 除非 == 运算符重载,否则它会调用那个运算符。

Equals 在对象中实现,也可以被覆盖。 Object 中的默认实现对引用类型执行引用比较。所以默认情况下,Equals 和 == 做同样的事情。

我认为在 Java 中你不能重载 == 运算符。但是我的 Java 知识已经过时了。

编辑:请注意,== 运算符是一个静态方法。它在编译时根据变量或字段的类型进行绑定(bind)。 Equals 是在运行时根据实际运行时类型找到的虚方法。

关于C# == 操作符具体是干什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/806020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com