Partilhar via


Operadores de igualdade

Nota

Este conteúdo é reimpresso com permissão da Pearson Education, Inc., a partir de Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition. Essa edição foi publicada em 2008 e, desde então, o livro foi totalmente revisto na terceira edição. Algumas das informações nesta página podem estar desatualizadas.

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

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

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

Isso muitas vezes significa que Object.Equals isso precisa ser substituído quando os operadores de igualdade estão sobrecarregados.

❌ EVITE lançar exceções dos operadores de igualdade.

Por exemplo, retorne false se um dos argumentos for null em vez de lançar NullReferenceException.

Operadores de igualdade em tipos de valor

✔️ DO sobrecarrega os operadores de igualdade em tipos de valor, se a igualdade for significativa.

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

Operadores de igualdade em tipos de referência

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

Muitos idiomas têm operadores de igualdade incorporados 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.

Este 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 valores.

❌ EVITE sobrecarregar os operadores de igualdade nos 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 com permissão da Pearson Education, Inc., de Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition por Krzysztof Cwalina e Brad Abrams, publicado em 22 de outubro de 2008 por Addison-Wesley Professional como parte da Microsoft Windows Development Series.

Consulte também