这个问题类似于这里的问题。
我们都知道什么是PointF,不是吗?这是数据结构:
如何使用容差实现
问题:如何实现正确的
我已经思考了几天,但仍然没有找到一个令人满意的解决方案。
我们都知道什么是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
字典,我能够正确地访问元素?我已经思考了几天,但仍然没有找到一个令人满意的解决方案。