2014-12-02 34 views
-2

我是C#的新手,因此我发现了一个让我无法完成作业的烦人问题。 IComparableIComparable<K>有何区别?IComparable与IComparable之间的区别<K>

我的一位朋友使用类似Vector_d<T> where T:IComparable的东西,但他使用的源文件中的其他地方是T:IComparable<T>。当我问他时,他不知道回答,所以我不得不在其他地方寻找。

+0

什么是烦人的问题? – 2014-12-02 23:28:51

+0

我不知道这两者之间的确切区别。因此,我需要知道如何使用它的提示 – 2014-12-02 23:29:58

+0

第二个指定要比较的类型 – 2014-12-02 23:31:22

回答

4

第一个IComparable来自旧的.NET时代,没有泛型。它基本上允许您将实现它的任何类型与任何其他类型进行比较,但如果类型不具有可比性,则可能会引发异常。 通用版本IComparable <>将仅允许您比较相同类型(或派生类型)的两个值,最有可能是您想要的。 旧类型,例如Int32,仅用于实现IComparable,但现在它们实现了两者,但是私有IComparable,以便不被调用而不是通用版本。