System.Collections.IStructuralEquatable
y System.Collections.IStructuralComparable
se agregaron en .NET 4, pero ¿por qué no son genéricos, como IEquatable<T>
y IComparable<T>
?¿Por qué no son genéricos IStructuralEquatable e IStructuralComparable?
Respuesta
El example on MSDN ofrece parte de la respuesta aquí; parece ser útil para la igualdad heterogénea, en lugar de la igualdad homogénea, es decir, para comprobar si dos objetos (/ valores) de potencialmente diferentes tipos deben considerarse iguales. En tales escenarios, es muy probable que el código de llamada trate con object
(para representar datos heterogéneos). Y los métodos genéricos no funcionan bien entonces.
Sin embargo, todas las clases 'Tuple' simplemente devuelven' false' si el otro objeto no es exactamente del mismo tipo. 'Array' parece implementarlo correctamente ... – thecoop
Array se comporta de la misma manera que tupla. Esta prueba falla: Assert.IsTrue (StructuralComparisons.StructuralEqualityComparer.Equals (new [] {5, 10}, new [] {5.0, 10.0})); –
- 1. ¿Qué problema resuelve IStructuralEquatable y IStructuralComparable?
- 2. IStructuralEquatable vs Equals?
- 3. ¿Por qué ActionScript no tiene "genéricos"?
- 4. genéricos e implementar IComparable
- 5. ¿Qué son los genéricos en C#?
- 6. Java genéricos e Infinity (comparable)
- 7. Genéricos o no Genéricos
- 8. ¿Por qué C# no infiere mis tipos genéricos?
- 9. ¿Por qué no se recomienda asignar e inicializar con id?
- 10. ¿Por qué estos números no son iguales?
- 11. ¿Por qué las interfaces no son [Serializable]?
- 12. Por qué mis importaciones no son reconocidas
- 13. ¿Por qué no se pueden inferir los tipos genéricos anidados?
- 14. ¿Por qué no es posible definir indexadores genéricos en .NET?
- 15. ¿Por qué C# y VB tienen genéricos? ¿Qué beneficio brindan? Genéricos, FTW
- 16. ¿Por qué las interfaces genéricas no son co/contravariantes por defecto?
- 17. ¿Por qué las excepciones no son propagadas por WPF Dispatcher.Invoke?
- 18. Genéricos de Java, no se puede convertir de E a E
- 19. ¿Por qué las ambigüedades con los genéricos son inconsistentes, en lugar de generar errores?
- 20. ¿Por qué los EJB son seguros y los servlets no?
- 21. ¿Por qué las enumeraciones de Java no son clonables?
- 22. ¿Qué son las cookies firmadas y por qué son útiles?
- 23. ¿Por qué los tipos CLR derivados de genéricos no son compatibles con SQL Server 2008 y posterior?
- 24. ¿Qué tipos son mutables e inmutables en Google Go Language?
- 25. ¿Por qué crear clases e interfaces abstractas?
- 26. ¿por qué necesitamos ClassMethods e InstanceMethods?
- 27. Diseño e implementación de los genéricos parte 2
- 28. ¿Qué son "etiqueta" e "id" en los diseños?
- 29. retornos por qué TypeId que int e int const son los mismos tipos
- 30. .NET Events - ¿Qué son Object Sender y EventArgs e?
Porque los genéricos de C# no permiten especificar los requisitos estructurales para un parámetro de tipo. – Ani