IComparable的作用是提供了一种比较两个对象的特定类型的方法。这是必需的如果您想要为对象提供任何排序功能。视为IComparable提供您的对象的默认排序次序。例如对于如果您有一个您的类型的对象的数组,并在该数组上调用Sort方法IComparable在排序过程中提供对象的比较。实现IComparable接口时, 必须实现CompareTo方法 此接...
IComparable<T>接口是泛型版本的IComparable,它约束实现类必须与指定类型T相比较。 它定义了一个方法CompareTo(T other),与IComparable类似,用于比较当前对象与指定对象之间的关系。 publicclassPerson : IComparable<Person>{publicstringName {get;set; }publicintAge {get;set; }publicintCompareTo(Person other) ...
Icompare就叫做比较器,集合默认的Sort()排序方法有种重载的参数就是Icompare比较器对象。 像所有集合类一样,它允许您对所有实现了IComparable接口的对象进行排序。在下一个例子中,您将修改NameCompare类以实现IComparable的泛型接口: public class NameCompare: IComparable<Student> 实现IComparable<Student>接口,NameCo...
IComparable是定义在要比较的对象类型上的,它提供了一种“自我比较”的机制。 IComparer是定义在外部的比较器类型上的,它提供了一种“外部比较”的机制,允许你比较不同类型的对象或定制比较同一类型的对象。 联系 两者都提供了比较对象的方法,但方法和实现方式有所不同。
查看int 源码可知,int 实现了 IComparable 接口: publicreadonlystructInt32:IComparable,IComparable<Int32>……{……publicInt32CompareTo(object?value);publicInt32CompareTo(Int32value);……} 以int 为例测试可知: //int a = 10;//int a = 11;inta=12;intb=11;Console.WriteLine(a.CompareTo(b))...
以上是一个矩形类,有宽和高两个属性,比较矩形大小就是比较其面积大小,所以我继承了IComparable接口,并将面积比较代码写在了里面,具体代码很简单,也就不做解释了,但大家需要注意一点,因为参数是object类型,并且引用类型可以为空,所以不要忘记一些比较的参数检查。
IComparable接口:定义一种特定于类型的通用比较方法,值类型或类通过实现此方法对其实例进行排序。 IComparer接口:公开一种比较两个对象的方法。 详细理解就是: 在默认情况下,对象的Equals(object o)方法(基类Object提供),是比较两个对象变量是否引用同一对象。
IComparable 是一个重要的接口,它为对象提供了一种内置的比较机制。当你需要为类或结构体定义排序功能时,这个接口就显得至关重要。通过实现 IComparable,你的对象可以参与到排序操作中,比如当你对一个对象数组调用 Sort 方法时,IComparable 中的 CompareTo 方法就会起到决定排序顺序的作用。实现 I...
通常,提供 IComparable<T> 实现的类型也会实现 IEquatable<T> 接口。 接口 IEquatable<T> 定义Equals 方法,该方法确定实现类型的实例的相等性。方法的 CompareTo(T) 实现必须返回具有三个 Int32 值之一的 ,如下表所示。展开表 “值”含义 小于零 此对象在排序顺序中由 CompareTo 方法指定的 对象之前。 零...