C# IComparable和IComparable之间的区别<;K>;

C# IComparable和IComparable之间的区别<;K>;,c#,C#,我是新来C#的,正因为如此,我发现了一个让人讨厌的问题,这让我无法做家庭作业。IComparable和IComparable之间有什么区别 我的一个朋友使用了这样的Vector\d,其中T:IComparable,但在源文件的其他地方他都使用了T:IComparable。当我问他时,他不知道该怎么回答,所以我不得不去别的地方搜索。第一个,IComparable,来自旧的.NET时代,那里没有泛型。它基本上允许您将实现它的任何类型与任何其他类型进行比较,但如果类型不可比较,它可能会抛出异常。 通用

我是新来C#的,正因为如此,我发现了一个让人讨厌的问题,这让我无法做家庭作业。
IComparable
IComparable
之间有什么区别


我的一个朋友使用了这样的
Vector\d,其中T:IComparable
,但在源文件的其他地方他都使用了
T:IComparable
。当我问他时,他不知道该怎么回答,所以我不得不去别的地方搜索。

第一个,IComparable,来自旧的.NET时代,那里没有泛型。它基本上允许您将实现它的任何类型与任何其他类型进行比较,但如果类型不可比较,它可能会抛出异常。 通用版本IComparable只允许比较同一类型(或派生类型)的两个值,很可能是您想要的值。
旧类型,如Int32,过去只实现IComparable,但现在它们都实现了IComparable,但是IComparable是私有的,这样就不会被调用而代替泛型版本。

什么是恼人的问题?我不知道这两者之间的确切区别。所以我需要一个提示来知道如何使用它。第二个提示指定了要比较的类型。在这两个接口的文档中,您还不了解什么?后者是泛型的,使用类型的更安全。原因是在不知道类型的情况下,必须在比较之前将对象强制转换到类中,这可能会导致错误。而提前知道类型,则可以直接进行比较。