比较'相似性'两个.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))
            { ......

事情是我在一些浮点/双精度值中得到的差异是微不足道的,我想忽略。实现浮点数/双精度(也可能是整型)基于提供的有效位数比较值的特定测试的最佳方法是什么?

比较'相似性'两个.net对象值的

看看EqualityComparer<T>类。

不应该按照您所描述的方式比较对象,而应该依赖所讨论类型的Equals方法。也就是说,类的作者应该通过重写Equals方法(甚至可能实现IEquality接口)来定义该类的两个实例何时相等。