这个问题与这里的问题相似。
我们都知道PointF是什么,不是吗?这是数据结构:
public struct PointF
{
public float X;
public float Y;
}
如何以IEqualityComparer<PointF>
宽容的态度实施?假设我的Equals
代码是这样的
public const float Epsilon = 0.01; //say
public bool Equals(PointF pt1, PointF pt2)
{
return Math.Abs(pt1.X-pt2.X)<Epsilon && Math.Abs(pt1.Y-pt2.Y)<Epsilon;
}
问题:如何实现正确GetHashCode
的,以便对于字典PointF
,我将正确访问元素?
我绞尽脑汁几天,但仍然找不到令人满意的解决方案。