为什么不是IStructuralEquatable和IStructuralComparable通用的?
System.Collections.IStructuralEquatable
和System.Collections.IStructuralComparable
是在.NET 4中添加的,但它们为什么不是通用的,如IEquatable<T>
和IComparable<T>
?
MSDN上的例子给出了部分答案。 它似乎对异构平等有用,而不是均匀的平等 - 也就是说,为了测试两种可能不同类型的对象(/值)是否应该被认为是相等的。 在这种情况下,调用代码极有可能处理object
(以表示异构数据)。 然后通用方法不会很好地播放。
上一篇: Why aren't IStructuralEquatable and IStructuralComparable generic?