我有一个通用的C#类比较器例程,它从对象读取值,然后使用反射逐个比较它们的属性。
var value1 = property.GetValue(object1, null);
var value2 = property.GetValue(object2, null);
if (!value1.Equals(value2))
{ ......
事情是我在一些微不足道的浮点/双值中得到了差异,我想忽略。实现浮点数/双精度(以及可能的整数)的特定测试的最佳方法是,根据提供的有效位数比较值?
答案 0 :(得分:1)
查看EqualityComparer<T>
课程。
不是以您描述的方式比较对象,而应该依赖于相关类型的Equals方法,即imho。
也就是说,类的作者应该通过覆盖Equals
方法(甚至可能实现IEquality
接口)来定义该类的2个实例是否相等。