Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
Este contenido se reimprime con permiso de Pearson Education, Inc. de Directrices de diseño de frameworks: Convenciones, expresiones y patrones para bibliotecas reutilizables de .NET, 2ª edición. Esa edición fue publicada en 2008, y el libro ha sido totalmente revisado en la tercera edición. Parte de la información de esta página puede estar obsoleta.
En esta sección se describen las sobrecargas de operadores de igualdad y se hace referencia a operator==
y operator!=
como operadores de igualdad.
❌ NO sobrecargue uno de los operadores de igualdad y no el otro.
✔️ Asegúrese de que Object.Equals y los operadores de igualdad tengan exactamente la misma semántica y características de rendimiento similares.
Esto suele significar que Object.Equals
debe invalidarse cuando se sobrecargan los operadores de igualdad.
❌ EVITE generar excepciones desde operadores de igualdad.
Por ejemplo, devuelve false si uno de los argumentos es null en lugar de lanzar NullReferenceException
.
Operadores de igualdad en tipos de valor
✔️ Sobrecargue los operadores de igualdad en los tipos de valor, si la igualdad es significativa.
En la mayoría de los lenguajes de programación, no hay implementación predeterminada para los tipos de valor operator==
.
Operadores de igualdad en tipos de referencia
❌ EVITE sobrecargar los operadores de igualdad en tipos de referencia mutables.
Muchos lenguajes tienen operadores de igualdad integrados para los tipos de referencia. Los operadores integrados suelen implementar la igualdad de referencia y muchos desarrolladores se sorprenden cuando se cambia el comportamiento predeterminado a la igualdad de valores.
Este problema se mitiga para los tipos de referencia inmutables porque la inmutabilidad hace que sea mucho más difícil observar la diferencia entre la igualdad de referencia y la igualdad de valores.
❌ EVITE sobrecargar los operadores de igualdad en los tipos de referencia si la implementación fuera significativamente más lenta que la de la igualdad de referencia.
© Partes 2005, 2009 de Microsoft Corporation. Todos los derechos reservados.
Reimpreso con permiso de Pearson Education, Inc. de Framework Design Guidelines: Convenciones, Idiomas y Patrones para Bibliotecas .NET Reusables, 2ª Edición por Krzysztof Cwalina y Brad Abrams, publicado el 22 de octubre de 2008 por Addison-Wesley Professional como parte de la Serie Desarrollo de Microsoft Windows.