C# hashCode的用途是什么?它是独一无二的吗?
我注意到WP7中的每个控件、项中都有一个C# hashCode的用途是什么?它是独一无二的吗?,c#,hashcode,C#,Hashcode,我注意到WP7中的每个控件、项中都有一个getHashCode()方法,它返回一个数字序列。我可以使用此哈希代码来标识项目吗?例如,我想识别设备中的图片或歌曲,并检查其位置。如果为特定项目提供的哈希代码是唯一的,则可以这样做 你能帮我解释一下hashCode和getHashCode()的用途吗?: 哈希代码是用于标识对象的数值 在平等测试期间。它还可以用作对象的索引 在一个集合中 GetHashCode方法适用于哈希算法和 数据结构,如哈希表 GetHashCode方法的默认实现没有 确保不同对
getHashCode()
方法,它返回一个数字序列。我可以使用此哈希代码来标识项目吗?例如,我想识别设备中的图片或歌曲,并检查其位置。如果为特定项目提供的哈希代码是唯一的,则可以这样做
你能帮我解释一下hashCode和getHashCode()的用途吗?:
哈希代码是用于标识对象的数值
在平等测试期间。它还可以用作对象的索引
在一个集合中
GetHashCode方法适用于哈希算法和
数据结构,如哈希表
GetHashCode方法的默认实现没有
确保不同对象的返回值唯一。此外
.NET Framework不保证
GetHashCode方法,它返回的值在
不同版本的.NET Framework。因此,违约
此方法的实现不能用作唯一对象
用于哈希目的的标识符
GetHashCode方法可以由派生类型重写。价值
类型必须重写此方法以提供
适用于该类型,并在
哈希表。为了唯一性,哈希代码必须基于值
用于实例字段或属性而不是静态字段或属性
财产
在哈希表对象中用作键的对象也必须重写
GetHashCode方法,因为这些对象必须生成自己的哈希
代码。如果用作键的对象未提供有用的
实现GetHashCode时,可以指定哈希代码提供程序
当构建哈希表对象时。在.NET框架之前
版本2.0时,哈希代码提供程序基于
System.Collections.IHashCodeProvider接口。从版本开始
2.0,哈希代码提供程序基于
System.Collections.IEqualityComparer接口
基本上,哈希代码的存在使哈希表成为可能。保证两个相等的对象具有相等的哈希码。
两个不相等的对象不能保证具有不相等的哈希代码(这称为冲突)。它不是WP7独有的,它存在于所有.Net对象上。它有点像你描述的那样,但我不推荐它作为你应用程序中的唯一标识符,因为它不能保证是唯一的
GetHashCode()
用于帮助支持将对象用作哈希表的键。(Java等中也存在类似的情况)。目标是让每个对象返回一个不同的哈希代码,但这通常不能绝对保证。但两个逻辑上相等的对象返回相同的哈希代码是必需的
典型的哈希表实现从hashCode值开始,取一个模数(从而将该值限制在一个范围内),并将其用作“bucket”数组的索引。了解了它的全部内容后,我想通过类比编写一个更简单的解释: 摘要:什么是哈希代码?
- 这是指纹。我们可以用这个指纹来识别感兴趣的人
- 两个人要有相同的指纹真的很难(不是不可能,但极不可能)
- 残忍先生的指纹永远不会改变李>
- 残忍先生整个生命的每一个部分:他的容貌、头发颜色、性格、饮食习惯等都必须(理想情况下)反映在他的指纹上,这样,如果他有一个兄弟(非常相似但不相同),那么两人的指纹都应该不同。我说“应该”,是因为我们不能100%保证这个世界上的两个人会有不同的指纹李>
- 但我们可以保证,克鲁姆先生的指纹永远是一样的,他的指纹永远不会改变