我定义了如下一个类。
Class Key
{
public object[] fields;
public equals(object obj)
{
//实现相等的算法。
}
public GetHashCode()
{
//?
}
}上面的GetHashCode应该如何实现比较好?
另外,什么样的生成HashCode的算法是比较好的?通常都怎么实现?
Class Key
{
public object[] fields;
public equals(object obj)
{
//实现相等的算法。
}
public GetHashCode()
{
//?
}
}上面的GetHashCode应该如何实现比较好?
另外,什么样的生成HashCode的算法是比较好的?通常都怎么实现?
解决方案 »
- richtextbox自动刷消息的时候没法选中复制
- progressbar???
- C#怎么传送文件夹
- C# 用户管理模块 源码
- 【求助】C#检索Access数据库时,总提示:语法错误(操作符丢失)
- [散分] 求关于SQLDMO 顶着结贴时都有分
- 。NET自带的程序做的安装包。在安装时如何判断是否已有该程序的旧版本。
- 关于winform 添加控件的问题
- 数据库查询问题???高手指教!!!!
- winform导出word的相关问题,在线等待,急!!!!急!!!!
- 求助:在VS2003中能否使用VS2005新增加的控件,并将这些控件集成到VS2003的ToolBox中?
- 【MS CPT】Microsoft Community Technology Preview 版本的软件可用放心用在项目中吗?
public override int GetHashCode()
{
return String.Format("{0}",this.MagID).GetHashCode();
} /// <summary>
/// 比较两本杂志是否是同一本杂志。
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public override bool Equals(object obj)
{
OrderItemInfo orderItemInfo=(OrderItemInfo)obj;
if(orderItemInfo.MagID.CompareTo(this.MagID)==0)
{
return true;
}
else
{
return false;
}
}
#endregion
对于人,可以认为两个人的身份证号码一样,那么就是同一个人,类推。如果两个对象相等Equals,那么GetHashCode()是一样的,所以在上面return String.Format("{0}",this.MagID).GetHashCode();就是返回MagID的HashCode。
我还是不太懂,怎么生成HashCode。