次のようなジェネリック クラスを継承し、インターフェイスを実装するクラスを宣言したいと考えています。
public class SortableObject
{
int compare(SortableObejct obj);
}
public class List<T> where T is class
{
public void add(T obj);
public T peekCurrent();
}
public class SortedList<T> : List<T> where T : SortableObject, SortableObject
{
public override int compare(SortableObejct obj);
}
SortedList<T>
から継承しList<T>
、 から実装したいのですがSortableObject
、T
は からのサブクラスですSortableObject
。C# コンパイラは、そのようなクラスをコンパイルできません。文法がこのケースをサポートしていないように私には思えます。
誰かがそのような困難に遭遇し、それに対する解決策を持っているでしょうか?