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
Referência
Outros recursos
Diretrizes de Design para desenvolvimento bibliotecas de classe