比较'相似性'两个.net对象值的
本文关键字:对象 相似性 比较 两个 net | 更新日期: 2023-09-27 18:17:13
我有一个通用的c#类比较程序,它从对象中读取值,然后使用反射逐个比较它们的属性。
var value1 = property.GetValue(object1, null);
var value2 = property.GetValue(object2, null);
if (!value1.Equals(value2))
{ ......
事情是我在一些浮点/双精度值中得到的差异是微不足道的,我想忽略。实现浮点数/双精度(也可能是整型)基于提供的有效位数比较值的特定测试的最佳方法是什么?
看看EqualityComparer<T>
类。
不应该按照您所描述的方式比较对象,而应该依赖所讨论类型的Equals方法。也就是说,类的作者应该通过重写Equals
方法(甚至可能实现IEquality
接口)来定义该类的两个实例何时相等。