Computer >> Máy Tính >  >> Lập trình >> C#

Sự khác biệt giữa Giao diện IComp so sánh được và Giao diện IComparer trong C #

Giao diện có thể so sánh được trong C #

Sử dụng Giao diện có thể so sánh được trong C # để sắp xếp các phần tử. Nó cũng được sử dụng để so sánh cá thể hiện tại với một đối tượng khác cùng loại.

Nó cung cấp cho bạn một phương pháp so sánh hai đối tượng của một loại cụ thể. Hãy nhớ rằng, trong khi triển khai giao diện IComp so sánh được, phương thức CompareTo () cũng nên được triển khai.

Hãy để chúng tôi xem một ví dụ -

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

Giao diện IComparer trong C #

Giao diện IComparer được sử dụng để sắp xếp các phần tử so sánh hai đối tượng và cung cấp phương pháp so sánh bổ sung.

Ví dụ

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;
   }
}

Bây giờ trả về một thể hiện của đối tượng IComparer.

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