Ваш класс Utilities
не реализует IComparable
.Вы говорите, что T
должен реализовывать IComparable
.Если бы Utilities
должен был реализовать IComparable
, это выглядело бы так:
public class Utilities<T> : IComparable
Вам не нужно определять метод CompareTo
в Utilities
, потому что он должен быть определен в T
, чем бы T
не было.
Например, вы не можете использовать Foo
для T
, потому что Foo
не реализует IComparable
:
class Foo {
// you must add a CompareTo method here in order to use Foo as T
// you must also add ": IComparable"
}
НоВы можете использовать string
или int
или float
, потому что они реализуют IComparable
.