System.ValueType.GetHashCode 方法

方法描述

返回此实例的哈希代码。

语法定义(C# System.ValueType.GetHashCode 方法 的用法)

public override int GetHashCode()

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
返回值 System.Int32 一个 32 位有符号整数,它是该实例的哈希代码。

提示和注释

GetHashCode 方法适用于从 ValueType 派生的类型。 派生类型的一个或多个字段用于计算返回值。 如果您调用派生类型的 GetHashCode 方法,则返回值不大可能适合用作哈希表中的键。 此外,如果其中的一个或多个字段的值发生更改,则返回值也可能不适合用作哈希表中的键。 这两种情况下,请考虑编写自己的 GetHashCode 方法实现,使其更适于表示类型的哈希代码概念。

有关更多信息,请参见Object.GetHashCode和System.Collections.Hashtable。

System.ValueType.GetHashCode 方法例子

下面的示例说明如何用派生值类型重写 GetHashCode 方法。

public struct Complex 
	{
		public double m_Re;
		public double m_Im;

		public override bool Equals( object ob ){
			if( ob is Complex ) {
				Complex c = (Complex) ob;
				return m_Re==c.m_Re && m_Im==c.m_Im;
			}
			else {
				return false;
			}
		}

		public override int GetHashCode(){
			return m_Re.GetHashCode() ^ m_Im.GetHashCode();
		}
	}

异常

异常 异常描述

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1 受以下版本支持:

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。