我有一个名为'Clock'的类,它实现了IEquatable接口.我在类中实现了'Equals'方法来比较两个对象,如下所示:
public bool Equals(Clock? other)
{
return _hours == other?._hours && _minutes == other._minutes;
}
当我将class
更改为record
类型并将Equals
方法替换为==
运算符时,结果保持不变.我可以得出这样的结论:我的类中的equals方法执行的比较实际上与==
操作符对记录类型执行的比较相同吗?
情景一:
我有两个类似Clock类的对象,我想使用我添加到类中的Equals
方法来判断两个对象的值是否相等.
Clock clock1 = new(2, 10);
Clock clock2 = new(2, 10);
if (clock2.Equals(clock1))
{
Console.WriteLine("Equal");
}
第二个场景:将我的class
类型更改为record
类型,并使用==
操作符比较两个对象
Clock clock1 = new(2, 10);
Clock clock2 = new(2, 10);
if (clock1 == clock2)
{
Console.WriteLine("Equal");
}
在这两种情况下,它们都返回True.我想知道Equals
方法和==
方法做的事情是完全一样的吗?