Diretrizes para implementação igual e o operador de igualdade (==)

As regras a seguir descrevem as diretrizes para implementar o É igual a método e o operador de igualdade (==):

  • Implementar o GetHashCode método sempre que você implemente o É igual a método. Isso mantém É igual a and GetHashCode sincronizados.

  • Substituir o É igual a método sempre que você implemente o operador de igualdade (==) e torná-los fazem a mesma coisa. Isso permite que o código de infra-estrutura, sistema autônomo Hashtable e ArrayList, o uso do É igual a método, se comportem da mesma forma que o código do usuário escrito usando o operador de igualdade.

  • Substituir o É igual a método qualquer time implementar o IComparable.

  • Considere a implementação sobrecarga de operador de operadores de igualdade (==) diferente (! =), menor que (<) e maior que (>) operadores ao implementarIComparable.

  • Não lançar exceções do É igual a or GetHashCode métodos ou o operador de igualdade (==).

Para obter informações relacionadas sobre o É igual a método, consulte Implementar o método equals.

Implementando o operador de igualdade (==) em tipos de valor

A maioria das linguagens de programação não há nenhuma implementação padrão do operador de igualdade (==) para tipos de valor. Portanto, você deverá sobrecarregar o operador de igualdade (==) qualquer time igualdade é significativa.

Você deve considerar a implementação de É igual a método no valor de tipos porque a implementação padrão de System.ValueType não executará, bem sistema autônomo sua implementação personalizada.

Implementar o operador de igualdade (==) qualquer time substituem o É igual a método.

Implementando o operador de igualdade (==) em tipos de referência

A maioria dos idiomas fornecem uma implementação padrão do operador de igualdade (==) para tipos de referência. Portanto, você deve usar cuidado ao implementar o operador de igualdade (==) em tipos de referência. A maioria dos tipos de referência, mesmo aquelas que implementam o É igual a método, não devem substituir o operador de igualdade (==).

Substituir o operador de igualdade (==) se o seu tipo é um tipo de base sistema autônomo um Point, String, BigNumber, e assim por diante. Sempre que você considerar a sobrecarga de adição (+) e operadores de subtração (-), você também deve considerar sobrecarregar o operador de igualdade (==).

Partes direitos autorais 2005 Microsoft Corporation. Todos os direitos reservados.

Partes direitos autorais Addison-Wesley Corporation. Todos os direitos reservados.

Para obter mais informações sobre diretrizes de design, consulte a "diretrizes de design do estrutura: Catálogo de convenções, idiomas e padrões para bibliotecas do .NET reutilizável"Krzysztof Cwalina e Brad Abrams, publicado pela Addison-Wesley, 2005.

Consulte também

Conceitos

Diretrizes de uso

Referência

Implementar o método equals

Object.Equals

Outros recursos

Diretrizes de Design para desenvolvimento bibliotecas de classe