110,535
社区成员
发帖
与我相关
我的任务
分享
//不懂什么 意思!
//好象是在对距形的数据压缩
public override int GetHashCode()
{
return (((this.X ^ ((this.Y << 13) | (this.Y >> 0x13))) ^ ((this.Width << 0x1a) | (this.Width >> 6))) ^ ((this.Height << 7) | (this.Height >> 0x19)));
}
Dictionary<Rectangle ,object> saveData
用Rectangle key 就不如用int 做key 的效率高
所以要把Rectangle 对象(有损地压缩成int 类型)
那么,这样就成了一对多的关系了!
这时就可以用下面的类型来代替上面的类型、
//注意,saveData的key 由 Rectangle对象的GetHashCode()方法取得
Dictionary<int,object[]> saveData
大侠是这个意思么?Dictionary<int,list<object>> saveData
用GetHashCode方向取得的数据 做dictionary 的key 键,
当有很多 Rectangle 类型 的数据要存储的时候,就往saveData 变量里面 push
就上面的方法,他的效率我还是有一点疑问,
他与下面一种方法比较起来哪一个快?
2·直接用List<Rectangle> 变量来存放。
bool isEqual = false;
if(objectA.HashCode()==objectB.HashCode())////这个比较耗时快
{
isEqual = object.Equals(objectA,objectB);//这个比较耗时
}
//比较objectA =? objectB
bool isEqual = false;
if(objectA.HashCode()==objectB.HashCode())////这个比较耗时快
{
isEqual = (objectA.HashCode()==objectB.HashCode());//这个比较耗时
}
//
而Object.ReferenceEquals() 才是比较内存地址!