为什么存在通用和非通用IComparable接口?

时间:2013-06-20 21:46:31

标签: c# icomparable

也许这个问题听起来很愚蠢,但为什么存在genericnon-generic IComparable界面?

此外,哪一个更喜欢使用?为什么?

1 个答案:

答案 0 :(得分:5)

在引入泛型之前,1.1版中添加了非通用IComparable,而在版本2.0中添加了IComparer<T>和泛型。

由于与所有通用接口相同的原因,通用版本是首选 - 它更安全并且更清楚地记录了意图。结构类型在传递给泛型方法时也不需要装箱,因为它们适用于object参数IComparable.CompareTo,因此也有性能优势。