我是C#的新手,因此我发现了一个烦人的问题,这使我无法完成作业。 IComparable
和IComparable<K>
之间的区别是什么?
我的一位朋友使用过像Vector_d<T> where T:IComparable
这样的内容,但他使用T:IComparable<T>
的源文件中的其他地方。当我问他时,他不知道回答所以我必须在其他地方搜索。
答案 0 :(得分:4)
第一个,IComparable,来自旧的.NET时代,那里没有泛型。它基本上允许您将实现它的任何类型与任何其他类型进行比较,但如果类型不具有可比性,它可能会抛出异常。 通用版本IComparable&lt;&gt;,只允许您比较相同类型(或派生类型)的两个值,很可能是您想要的。 旧类型,例如Int32,用于仅实现IComparable,但现在它们实现了两者,但是私有IComparable,以便不调用而不是通用版本。