实现地理坐标类:相等比较我正在将CodePlex的地理坐标类集成到我个人的“工具箱”库中。此类使用float字段来存储纬度和经度。由于GeoCoordinate类实现了IEquatable,所以我习惯性的写Equals方法如下:publicboolEquals(GeoCoordinateother){if(other==null){returnfalse;}返回this.latitude==other.latitude&&this.longitude==other.longitude;在这一点上,我停下来并认为我正在比较浮点变量是否相等,这通常是一个禁忌。我的思考过程是这样的:我只能设想设置一次纬度和经度属性,这意味着不会累积错误来搞砸我的比较。另一方面,可以写(尽管没有意义)vargeo1=newGeoCoordinate(1.2,1.2);vargeo2=newGeoCoordinate(1.2,1.2);//geo1.Equals(geo2)肯定是真的,但是:geo2.Latitude*=10;geo2.Latitude/=10;//我会认为现在所有的赌注都关闭了当然这不是我能想象的,但是如果类的公共接口允许,那么Equals应该可以处理它。使用difference
