IComparable和IComparer接口的简析

Posted 小王子的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IComparable和IComparer接口的简析相关的知识,希望对你有一定的参考价值。

     默认情况下,对象的Equals(object o)方法是比较两个对象是否引用同一个对象。如果我们有自己的对象,就要自己定义对象比较方式:

         1.IComparable在要比较的对象(类的实例化就是对象)类中实现,可以比较该对象和另一个对象。

         2.IComparer在一个单独的类中实现,可以任意比较两个对象。

         通俗的讲,IComparable是能够比较,具备比较的能力。比如说某个人具备编程的能力,如果需要对编程能力的高低进行比较的话,就必须在自己的类中去实现怎么具体的方法。IComparer是比较者,属于第三者,它用来对其他对象进行比较,它只是个中间第三方。

     1.IComparable提供了一个方法int CompareTo(object obj)这个方法可接受一个对象,实现这个方法可进行比较。

          比较Person的年轻:

if(person1.CompareTo(person2) == 0)
{
  Console.WriteLine("Same age");
}
else if(person1.CompareTo(person2) > 0 )
{
  Console.WriteLine("person 1 is older");
}
else
{
  Console.WriteLine("person1 is younger");
}

      2.IComparer提供了一个方法Compare,这个方法接受两个对象

if(personComparer.Compare(person1,person2) == 0)
{
  Console.WriteLine("same age");
}
else if(personComparer.Compare(person1,person2) > 0 )
{
  Console.WriteLine("person 1 is older");
}
else
{
  Console.WriteLine("person1 is younger");
}

       

以上是关于IComparable和IComparer接口的简析的主要内容,如果未能解决你的问题,请参考以下文章

C#中的IComparable和IComparer接口

C#中的IComparable和IComparer接口

c# IComparable与IComparer接口

C#接口汇总

C#接口汇总

在C#语言开发程序中,以下关于IComparable<T>和IComparer<T>的说法中错误的是()。(选择一项)