0

听说type casting很慢 我以为comparison很快,但是...

似乎IComparable.CompareTo(object y)必须使用,如果没有可用的话cast,它x > y至少会像不慢一样慢。y as MyClassIComparable<T>

那么,我这样说是否正确:

实现总是IComparable<T>IComparable因为我们不必键入强制转换更好?

更新

boxing比 2 个引用类型之间的类型转换慢得多吗?

4

2 回答 2

1

从性能的角度来看,实现这些接口的通用版本总是更好,因为它可以保证您将避免值类型的装箱,这是这种情况下的第一大性能杀手。

通用版本也不需要进行运行时类型检查,但这些检查对性能的影响远小于装箱,并且在实践中更难注意到。

看到通过实施没有任何损失,IComparable<T>那么结论很清楚:您应该始终这样做,因为没有什么可失去的,并且可能会获得相当多的收益。

于 2012-10-05T11:29:27.870 回答
0

实现泛型总是更好。不仅是为了性能,还因为你得到了编译时检查。

于 2012-10-05T11:28:38.817 回答