问题标签 [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.
c# - 结构中需要覆盖什么以确保平等正常运行?
正如标题所说:我需要覆盖==
操作员吗?方法怎么样.Equals()
?有什么我想念的吗?
c# - 在 C# 中为类实现 == 运算符的最佳实践是什么?
在实现==
运算符时,我感觉我遗漏了一些要点。
因此,我正在寻找一些最佳实践。
以下是我正在考虑的一些相关问题:
- 如何干净地处理参考比较?
- 它应该通过类似
IEquatable<T>
的接口来实现吗?还是压倒一切object.Equals
? - 那么
!=
运营商呢?
(此列表可能并不详尽)。
c# - 我应该重载 == 运算符吗?
运算符在 C# 中如何==
真正发挥作用?如果它用于比较A类的对象,它会尝试匹配A的所有属性,还是会寻找指向同一内存位置的指针(或者可能是其他东西)?
让我们创建一个假设的例子。我正在编写一个利用 Twitter API 的应用程序,它有一个Tweet类,它具有单个推文的所有属性:文本、发件人、日期和时间、来源等。如果我想比较Tweet类的对象是否等效,我可以使用:
这会检查Tweet类在a和b之间的所有属性的等价性吗?
如果不是,正确的方法是重载==
运算符以显式检查所有字段的等价性吗?
更新:从前两个答案中,我是否正确地假设:
- 如果没有为类重载
==
运算符或Equals方法,则使用对象==
类的运算符。 - 对象类的
==
运算符检查内存位置是否相等。 - 我必须重载
==
运算符或Equals方法才能完成此任务。 - 在重载中,我必须手动检查属性的等价性,所以没有办法半自动地进行,比如说,在循环中,对吧?
更新#2: Yuriy 发表评论说,可以==
使用反射检查运算符中属性的等价性。如何才能做到这一点?你能给我一些示例代码吗?谢谢!
c++ - C++ 中派生类的等式测试
在 C++ 中,派生类如何以有意义的方式覆盖基类相等性测试?
例如,假设我有一个基类 A。类 B 和 C 派生自 A。现在给定两个指向两个 A 对象的指针,我可以测试它们是否相等(包括任何子类数据)吗?
有干净的方法吗?我最好的选择是什么?
谢谢!
c++ - 运算符问题==
我在以下 c++ 程序中使用 operator == 时遇到了一些问题。
线有什么问题if(obj1 == A("test1"))
??任何帮助表示赞赏。
c++ - 派生类中的 Operator== 永远不会被调用
有人可以让我摆脱痛苦吗?我试图弄清楚为什么派生 operator== 永远不会在循环中被调用。为了简化示例,这是我的 Base 和 Derived 类:
现在当我像这样实例化和比较时......
... 一切皆好。在这里,来自 Derived 的 operator== 被调用,但是当我遍历一个列表时,比较指向 Base 对象的指针列表中的项目......
这里asString()
(它是虚拟的,为简洁起见,这里没有显示)工作正常,但即使两个对象是. 也obj1 == obj2
总是调用.Base
operator==
Derived
我知道当我发现问题所在时我会踢自己,但如果有人能轻轻地让我失望,那将不胜感激。
c++ - 相同“if”条件下的两个“==”等式运算符未按预期工作
我正在尝试建立三个相等变量的相等性,但以下代码没有打印它应该打印的明显正确答案。有人可以解释一下,编译器是如何在if(condition)
内部解析给定的吗?
输出:
编辑:
根据下面给出的答案,以下语句可以检查以上相等性吗?
java - 为什么我在 java 中的布尔测试总是失败?
我正在尝试进行布尔测试,以便如果其中一个轮胎压力低于 35 或超过 45,系统会输出“充气不良”。
在我的课堂上,我必须使用布尔值,这是我尝试过的。然而,返回的布尔值始终为真。我不明白为什么。
c# - 如果“== 运算符未定义”会发生什么?
如果“== 运算符未定义”会发生什么?
例子:
使用结构时会有所不同吗?
编组的 ( System.Runtime.Remoting.*
) 对象(单例)怎么样?
c# - 字典键不包含键中已包含的键
为什么以下“存在”布尔变量的值为假???
我已经覆盖了 GetHashCode() 和 Equals() 方法,如下所示: