Re: Операторы сравнения для generics
От: AngeL B. Россия  
Дата: 13.03.08 16:25
Оценка: 2 (1)
Здравствуйте, копатыч, Вы писали:

К>Как правильно определить операторы сравнения для generic ?

Поскольку обобщенный тип должен быть скомпилирован в месте определения (а не использования, как в C++) для параметров-типов в обобщенных классах нельзя использовать операторы сравнения, так же как и + — * / и т.д. так как компилятор не может определить применимы ли эти операторы к неизвестному типу.

Для этих целей используют ключевое словое where, налагающее ограничение (constraint) на параметр обобщенного типа и интерфейсы типа IComparable

К> public static bool operator >(TestClass<T> x, TestClass<T> y)

К> {
К> return !(x<y);
К> }
К> //........................

Кстати, в общем случае этот код не верен. Если А не меньше Б то это может значить как больше так и просто равно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.