Como sé, todo se deriva del objeto excepto las interfaces en .net. Pero noté que cuando presiono "." después del nombre de la interfaz aparece el método Equals. Y cuando presiono F12 para el método equals, dirige al método equals en la clase de objeto. Si las interfaces no se derivan de la clase de objeto, ¿de dónde viene el método igual?Método de igualdad en las interfaces
Respuesta
las interfaces solo pueden estar en objetos.
Cualquier tipo que implemente la interfaz en última instancia deriva del objeto, por lo tanto, Equals siempre se define.
¿Por qué no está disponible el método ToString()? –
Está disponible. –
Desde la sección 13.2 de la especificación C# 4:
Tenga en cuenta que los miembros de objeto de clase no son, estrictamente hablando, los miembros de cualquier interfaz (§13.2). Sin embargo, los miembros del objeto de clase están disponibles a través de la búsqueda de miembros en cualquier tipo de interfaz (§7.4).
Y la sección 7.4:
- En primer lugar, se determina un conjunto de miembros accesibles llamado N:
- ...
- De lo contrario, el conjunto consta de todos accesibles (§ 3.5) miembros llamados N en T, incluidos los miembros heredados y los miembros accesibles llamados N en el objeto. [...]
Y la sección 7.4.1:
Para los efectos de las operaciones de búsqueda miembro, un tipo T se considera que tiene los siguientes tipos de base:
...
• Si T es un tipo de interfaz, los tipos de base de T son las interfaces base de T y el objeto de tipo de clase.
Básicamente se trata de un dulce de azúcar, dejar que el compilador entiende que los miembros de object
siempre realmente estar disponible en tiempo de ejecución, a pesar de que en realidad no son miembros del tipo de la expresión que implica para las interfaces.
+1 john para la especificación de especificación C# 4 ...... –
Además, tiene sentido tener estos miembros disponibles. – ChaosPandion
- 1. ¿Las interfaces tienen el método toString?
- 2. Igualdad en las restricciones
- 3. Autorreferencia en las interfaces
- 4. Anotaciones en las interfaces?
- 5. Comprensión de las interfaces
- 6. Importancia de las interfaces C#
- 7. Herencia en las interfaces de colección Java
- 8. consulta acerca de las interfaces en Java
- 9. cómo escribir un método de Igualdad en Java
- 10. ¿Codificando a las interfaces?
- 11. ¿Deben las interfaces definir propiedades?
- 12. Parámetros opcionales para las interfaces
- 13. ¿Propósito de las interfaces Zope?
- 14. C# Cómo usar las interfaces
- 15. ¿Son necesarias las interfaces en JavaScript?
- 16. métodos de constructor en las interfaces
- 17. ¿Cuál es la diferencia entre las interfaces IComparable e IEquatable?
- 18. Demostrando la igualdad de las corrientes
- 19. ¿Cuándo se necesitan las interfaces?
- 20. Destructores virtuales para las interfaces
- 21. ¿Deberían las entidades implementar interfaces?
- 22. Las estructuras, interfaces y boxeo
- 23. ¿Equivalente a las interfaces Java en C++?
- 24. Pruebas unitarias: ¿codificación en las interfaces?
- 25. UDP-Broadcast en todas las interfaces
- 26. Uso de los genéricos de Java en las interfaces de
- 27. ¿por qué las interfaces en lenguajes dinámicos/de tipo suelto?
- 28. sqlalchemy id igualdad vs igualdad de referencia
- 29. ¿Cuál es el punto de las interfaces en PHP?
- 30. registre automáticamente todas las interfaces con Unity
No creo que esto responda claramente la pregunta. – ChaosPandion