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

时间:2011-12-09 13:11:09

标签: c# comparison equality

我有一个通用的C#类比较器例程,它从对象读取值,然后使用反射逐个比较它们的属性。

            var value1 = property.GetValue(object1, null);
            var value2 = property.GetValue(object2, null);

            if (!value1.Equals(value2))
            { ......

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

1 个答案:

答案 0 :(得分:1)

查看EqualityComparer<T>课程。

不是以您描述的方式比较对象,而应该依赖于相关类型的Equals方法,即imho。 也就是说,类的作者应该通过覆盖Equals方法(甚至可能实现IEquality接口)来定义该类的2个实例是否相等。