为什么IStructuralEquatable和IStructuralComparable不通用?

the*_*oop 8 .net generics equality .net-4.0

System.Collections.IStructuralEquatableSystem.Collections.IStructuralComparable在.NET 4中添加,但为什么它们不是通用的,比如IEquatable<T>IComparable<T>

Mar*_*ell 3

MSDN上的例子在这里给出了部分答案;它似乎对于异类平等有用,而不是同质平等有用 - 即用于测试潜在不同类型的两个对象(/值)是否应被视为相等。在这种情况下,调用代码极有可能正在处理object(表示异构数据)。那么泛型方法就不能很好地发挥作用。

  • 但是,如果其他对象的类型不完全相同,则所有“Tuple”类都会简单地返回“false”。`Array` 似乎正确地实现了它...... (2认同)