Здравствуйте, копатыч, Вы писали:
К>Как правильно определить операторы сравнения для generic ?
Поскольку обобщенный тип должен быть скомпилирован в месте определения (а не использования, как в C++) для параметров-типов в обобщенных классах нельзя использовать операторы сравнения, так же как и + — * / и т.д. так как компилятор не может определить применимы ли эти операторы к неизвестному типу.
Для этих целей используют ключевое словое where, налагающее ограничение (constraint) на параметр обобщенного типа и интерфейсы типа IComparable
К> public static bool operator >(TestClass<T> x, TestClass<T> y) К> { К> return !(x<y); К> } К> //........................
Кстати, в общем случае этот код не верен. Если А не меньше Б то это может значить как больше так и просто равно.