Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Método ValueType.GetHashCode ()

 
System_CAPS_noteObservação

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Retorna o código hash para essa instância.

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

public override int GetHashCode()

Valor Retornado

Type: System.Int32

Um inteiro com sinal de 32 bits que é o código hash para esta instância.

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

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

Quando você chama o GetHashCode método em um Tempo de Execução do Windows estrutura, ele fornece o comportamento padrão para tipos de valor não substituem GetHashCode. Ele faz parte do suporte que o .NET Framework dá para o Tempo de Execução do Windows (consulte Suporte do .NET Framework para aplicativos da Windows Store e Windows Runtime ).Tempo de Execução do Windowsestruturas não podem substituir GetHashCode, mesmo que estão gravados com c# ou Visual Basic, porque eles não podem ter métodos. (Além disso, estruturas de Tempo de Execução do Windows em si não herdam ValueType.) No entanto, eles parecerão ter ToString, Equals, e GetHashCode métodos quando usá-los 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 GetHashCode método 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();
	}
}

Plataforma Universal do Windows
Disponível desde 8
.NET Framework
Disponível desde 1.1
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Silverlight
Disponível desde 2.0
Windows Phone Silverlight
Disponível desde 7.0
Windows Phone
Disponível desde 8.1
Retornar ao início
Mostrar: