接口IStructuralEquatable在C#中做什么?

IStructuralEquatable接口定义了用于比较对象以进行结构相等的方法,这意味着两个对象相等,因为它们具有相等的值。

它包括以下两种方法-

序号方法与说明
1Equals(Object,IEqualityComparer)
该方法确定对象在结构上是否等于当前实例。
2GetHashCode(IEqualityComparer)
该方法为当前实例提供一个哈希码。

让我们看一个创建Tuple对象并使用IstructuralEquatable接口的示例:

创建元组-

var tupleOne = Tuple.Create(26.3, Double.NaN, 35.6);
var tupleOne = Tuple.Create(26.3, Double.NaN, 35.6);

现在,通过使用默认比较器调用IStructuralEquatable.Equals来检查相等性。

IStructuralEquatable chk = tupleOne;
Console.WriteLine(chk.Equals(tupleTwo, EqualityComparer<object>.Default));