首页 > 其他 > 详细

IComparable和IComparer接口的简析

时间:2017-04-19 09:50:26      阅读:134      评论:0      收藏:0      [点我收藏+]

     默认情况下,对象的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接口的简析

原文:http://www.cnblogs.com/xiaowangzi1987/p/6731495.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!