Compartilhar via


Operadores de igualdade

Observação

Esse conteúdo é reimpresso por permissão da Pearson Education, Inc. das Diretrizes de Design da Estrutura: Convenções, Idiomas e Padrões para Bibliotecas .NET Reutilizáveis, 2ª Edição. Essa edição foi publicada em 2008, e desde então o livro foi totalmente revisado na terceira edição. Algumas das informações nesta página podem estar desatualizadas.

Esta seção discute a sobrecarga de operadores de igualdade e refere-se a operator== e operator!= como operadores de igualdade.

❌ NÃO sobrecarregue um dos operadores de igualdade e não o outro.

✔️ Certifique-se de que Object.Equals e os operadores de igualdade tenham exatamente a mesma semântica e características de desempenho semelhantes.

Isso geralmente significa que Object.Equals precisa ser substituído quando os operadores de igualdade estiverem sobrecarregados.

❌ EVITE gerar exceções de operadores de igualdade.

Por exemplo, retorne false se um dos argumentos for nulo em vez de gerar NullReferenceException.

Operadores de igualdade em tipos de valor

✔️ É recomendável sobrecarregar os operadores de igualdade em tipos de valor, se a igualdade for significativa.

Na maioria das linguagens de programação, não há implementação padrão de operator== para tipos de valor.

Operadores de igualdade em tipos de referência

❌ EVITE sobrecarregar operadores de igualdade em tipos de referência mutáveis.

Muitos idiomas têm operadores de igualdade internos para tipos de referência. Os operadores internos geralmente implementam a igualdade de referência e muitos desenvolvedores ficam surpresos quando o comportamento padrão é alterado para a igualdade de valor.

Esse problema é atenuado para tipos de referência imutáveis porque a imutabilidade torna muito mais difícil notar a diferença entre igualdade de referência e igualdade de valor.

❌ EVITE sobrecarregar operadores de igualdade em tipos de referência se a implementação for significativamente mais lenta do que a da igualdade de referência.

Partes © 2005, 2009 Microsoft Corporation. Todos os direitos reservados.

Reimpresso por permissão da Pearson Education, Inc. de Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition de Krzysztof Cwalina e Brad Abrams, publicado em 22 de outubro de 2008 pela Addison-Wesley Professional como parte da série Microsoft Windows Development Series.

Consulte também