Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ความแตกต่างระหว่างอินเทอร์เฟซ IComparable และ IComparer ใน C #


อินเทอร์เฟซ IComparable ใน C#

ใช้อินเทอร์เฟซ IComparable ใน C # เพื่อจัดเรียงองค์ประกอบ นอกจากนี้ยังใช้เพื่อเปรียบเทียบอินสแตนซ์ปัจจุบันกับวัตถุประเภทเดียวกันอีกด้วย

มันให้วิธีการเปรียบเทียบสองวัตถุประเภทใดประเภทหนึ่งแก่คุณ โปรดจำไว้ว่า ในขณะที่ใช้อินเทอร์เฟซ IComparable ควรใช้เมธอด CompareTo() ด้วย

เรามาดูตัวอย่างกัน −

int IComparable.CompareTo(object ob) {
   Vehicle v=(Vehicle)ob;
   return String.Compare(this.make,v.make);
}

อินเทอร์เฟซ IComparer ใน C#

อินเทอร์เฟซ IComparer ใช้เพื่อจัดเรียงองค์ประกอบที่เปรียบเทียบสองวัตถุและให้วิธีการเปรียบเทียบเพิ่มเติม

ตัวอย่าง

private class sortYearAscendingHelper : IComparer {
   int IComparer.Compare(object ob1, object ob2) {
      Vehicle v1=(Vehicle)ob1;
      Vehicle v2=(Vehicle)ob2;
      if (v1.year > v2.year)
      return 1;
      if (v1.year < v2.year)
      return -1;
      else
      return 0;
   }
}

ตอนนี้ส่งคืนอินสแตนซ์ของวัตถุ IComparer

public static IComparer sortYearAscending() {
   return (IComparer) new sortYearAscendingHelper();
}