좋아요, 아래 코드와 비슷한 시나리오가 있습니다. IComparable과 자식 클래스를 구현하는 부모 클래스가 있습니다.IComparable 및 컬렉션 정렬 방법에 문제가 있습니다.
class Parent : IComparable<Parent>
class Child : Parent
Child a = new Child();
Child b = new Child();
a.CompareTo(b);
이제 위의 작품 좋은, 나는 아이의 두 개의 서로 위 InvalidOperationException이와 비록 실패 문제
List<Child> l = new List<Child>();
l.Add(b);
l.Add(a);
l.Sort();
개체를하지 비교할 수 있습니다. 누군가가 왜 이런 종류의 자식 클래스가 IComparable 인터페이스를 구현할 때 작동하지 않습니다 설명 할 수 또는 적어도 나를 않습니다. 여기에 좋아
는
public int CompareTo(IDType other)
{
return this.Name.ToString().CompareTo(other.ToString());
}
귀하의 샘플을 만들고있는 목록의 실제 제네릭 형식은 무엇입니까 ... 내가 추측하고있어 "새 목록는()"오타 말한다? –
아, 미안 해요 오타예요. List l = 새 목록 (); 제네릭 형식 목록을 만드는 것이 꽤 분명하다고 생각합니다. –
CalvinR
IComparable 구현의 코드를 볼 수 있습니까? –