Хорошо, у меня есть сценарий, похожий на приведенный ниже код, у меня есть родительский класс, реализующий IComparable, и дочерний класс.
class Parent : IComparable<Parent>
class Child : Parent
Child a = new Child();
Child b = new Child();
a.CompareTo(b);
Теперь вышеприведенное работает отлично, я могу сравнить два дочерних объекта друг с другом без проблем
List<Child> l = new List<Child>();
l.Add(b);
l.Add(a);
l.Sort();
Вышеприведенный сбой, хотя с InvalidOperationException. Может кто-нибудь объяснить, почему этот вид не работает, когда дочерний класс реализует интерфейс IComparable, или, по крайней мере, мне кажется, что это так.
Хорошо, вот моя реализация CompareTo для моего фактического родительского класса
public int CompareTo(IDType other)
{
return this.Name.ToString().CompareTo(other.ToString());
}