Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#에서 IComparable과 IComparer 인터페이스의 차이점

<시간/>

C#의 IComparable 인터페이스

C#에서 IComparable 인터페이스를 사용하여 요소를 정렬합니다. 또한 현재 인스턴스를 동일한 유형의 다른 개체와 비교하는 데 사용됩니다.

특정 유형의 두 개체를 비교하는 방법을 제공합니다. IComparable 인터페이스를 구현하는 동안 CompareTo() 메서드도 구현해야 합니다.

예를 들어 보겠습니다 -

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

C#의 IComparer 인터페이스

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