首页 > 代码库 > IComparable和IComparer接口的简析
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接口的简析
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。