Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Método ValueType.GetHashCode

Retorna o hash code para essa instância.

Namespace:  System
Assembly:  mscorlib (em mscorlib.dll)

public override int GetHashCode()

Valor de retorno

Tipo: System.Int32
Um inteiro de 32 bits com sinal que é o código hash para essa instância.

O método de GetHashCode se aplica aos tipos derivados de ValueType. Um ou mais campos de tipo derivado são usados para calcular o valor de retorno. Se você chamar o método derivado de GetHashCode de tipo, o valor de retorno não é provável de ser adequado para uso como uma chave em uma tabela de hash. Além disso, se o valor de um ou mais desses campos muda, o valor de retorno inadequados pode se tornar para uso como uma chave em uma tabela de hash. Em ambos os casos, considere escrever sua própria implementação do método de GetHashCode que representa melhor o conceito de um código hash para o tipo.

Para obter mais informações, consulte Object.GetHashCode e System.Collections.Hashtable.

Observações para Tempo de Execução do Windows

Quando você chama o método de GetHashCode em uma estrutura de Tempo de Execução do Windows , fornece o comportamento padrão para tipos de valor que não substituem GetHashCode. Esta é parte de suporte que o.NET Framework fornece para Tempo de Execução do Windows (consulte Suporte do .NET Framework para aplicativos da Windows Store e Tempo de Execução do Windows). as estruturas deTempo de Execução do Windows não podem substituir GetHashCode, mesmo se são escritas com C# ou Visual Basic, porque eles não podem ter métodos. (Além disso, as estruturas em Tempo de Execução do Windows próprias não herdam ValueType.) No entanto, parecem ter ToString, Equals, e métodos dos GetHashCode quando você usa em seu código C# ou Visual Basic, e o.NET Framework fornece o comportamento padrão para esses métodos.

O exemplo a seguir demonstra como o método de GetHashCode pode ser substituído por um tipo de valor derivado.


	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();
		}
	}


.NET Framework

Com suporte em: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Biblioteca de Classes Portátil

Com suporte em: Biblioteca de Classes Portátil

.NET para aplicativos da Windows Store

Com suporte em: Windows 8

.NET para aplicativos do Windows Phone

Com suporte em: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

Contribuições da comunidade

ADICIONAR
A Microsoft está realizando uma pesquisa online para saber sua opinião sobre o site do MSDN. Se você optar por participar, a pesquisa online lhe será apresentada quando você sair do site do MSDN.

Deseja participar?
Mostrar:
© 2014 Microsoft