问题标签 [equals-operator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
43875 浏览

c# - 结构中需要覆盖什么以确保平等正常运行?

正如标题所说:我需要覆盖==操作员吗?方法怎么样.Equals()?有什么我想念的吗?

0 投票
4 回答
2148 浏览

c# - 在 C# 中为类实现 == 运算符的最佳实践是什么?

在实现==运算符时,我感觉我遗漏了一些要点。
因此,我正在寻找一些最佳实践。
以下是我正在考虑的一些相关问题:

  • 如何干净地处理参考比较?
  • 它应该通过类似IEquatable<T>的接口来实现吗?还是压倒一切 object.Equals
  • 那么!=运营商呢?

(此列表可能并不详尽)。

0 投票
5 回答
928 浏览

c# - 我应该重载 == 运算符吗?

运算符在 C# 中如何==真正发挥作用?如果它用于比较A类的对象,它会尝试匹配A的所有属性,还是会寻找指向同一内存位置的指针(或者可能是其他东西)?

让我们创建一个假设的例子。我正在编写一个利用 Twitter API 的应用程序,它有一个Tweet类,它具有单个推文的所有属性:文本、发件人、日期和时间、来源等。如果我想比较Tweet类的对象是否等效,我可以使用:

这会检查Tweet类在ab之间的所有属性的等价性吗?

如果不是,正确的方法是重载==运算符以显式检查所有字段的等价性吗?

更新:从前两个答案中,我是否正确地假设:

  • 如果没有为类重载==运算符或Equals方法,则使用对象==类的运算符。
  • 对象类的==运算符检查内存位置是否相等。
  • 我必须重载==运算符或Equals方法才能完成此任务。
  • 在重载中,我必须手动检查属性的等价性,所以没有办法半自动地进行,比如说,在循环中,对吧?

更新#2: Yuriy 发表评论说,可以==使用反射检查运算符中属性的等价性。如何才能做到这一点?你能给我一些示例代码吗?谢谢!

0 投票
5 回答
13996 浏览

c++ - C++ 中派生类的等式测试

可能重复:
为类层次结构重载 operator== 的正确方法是什么?

在 C++ 中,派生类如何以有意义的方式覆盖基类相等性测试?

例如,假设我有一个基类 A。类 B 和 C 派生自 A。现在给定两个指向两个 A 对象的指针,我可以测试它们是否相等(包括任何子类数据)吗?

有干净的方法吗?我最好的选择是什么?

谢谢!

0 投票
4 回答
359 浏览

c++ - 运算符问题==

我在以下 c++ 程序中使用 operator == 时遇到了一些问题。

线有什么问题if(obj1 == A("test1"))??任何帮助表示赞赏。

0 投票
5 回答
2455 浏览

c++ - 派生类中的 Operator== 永远不会被调用

有人可以我摆脱痛苦吗?我试图弄清楚为什么派生 operator== 永远不会在循环中被调用。为了简化示例,这是我的 Base 和 Derived 类:

现在当我像这样实例化和比较时......

... 一切皆好。在这里,来自 Derived 的 operator== 被调用,但是当我遍历一个列表时,比较指向 Base 对象的指针列表中的项目......

这里asString()(它是虚拟的,为简洁起见,这里没有显示)工作正常,但即使两个对象是. 也obj1 == obj2 总是调用.Base operator==Derived

我知道当我发现问题所在时我会踢自己,但如果有人能轻轻地让我失望,那将不胜感激。

0 投票
4 回答
4142 浏览

c++ - 相同“if”条件下的两个“==”等式运算符未按预期工作

我正在尝试建立三个相等变量的相等性,但以下代码没有打印它应该打印的明显正确答案。有人可以解释一下,编译器是如何在if(condition)内部解析给定的吗?

输出:

编辑:

根据下面给出的答案,以下语句可以检查以上相等性吗?

0 投票
6 回答
2998 浏览

java - 为什么我在 java 中的布尔测试总是失败?

我正在尝试进行布尔测试,以便如果其中一个轮胎压力低于 35 或超过 45,系统会输出“充气不良”。

在我的课堂上,我必须使用布尔值,这是我尝试过的。然而,返回的布尔值始终为真。我不明白为什么。

0 投票
4 回答
1156 浏览

c# - 如果“== 运算符未定义”会发生什么?

如果“== 运算符未定义”会发生什么?

例子:

使用结构时会有所不同吗?

编组的 ( System.Runtime.Remoting.*) 对象(单例)怎么样?

0 投票
2 回答
255 浏览

c# - 字典键不包含键中已包含的键

为什么以下“存在”布尔变量的值为假???

我已经覆盖了 GetHashCode() 和 Equals() 方法,如下所示: