Перегрузка бинарного оператора

Всем привет!есть такая задача: нужно сравнить DateTime(только часы и минуты) с числом. т.е. я беру из DateTime часы и минуты, перевожу все это в минуты и сравниваю с числом(не спрашивайте зачем, так надо), по условию задачи нужно перегрузить оператор сравнения (<>). делаю так:
        /// перегрузка оператора сравнения ">", для возможности сравнения переменной типа DateTime и переменной типа int        public static bool operator>(DateTime dt, int i)        {            if (((dt.Hour * 60) + dt.Minute) > i)                return true;            else                return false;        }        /// перегрузка оператора сравнения "<", для возможности сравнения переменной типа DateTime и переменной типа int        public static bool operator<(DateTime dt, int i)        {            if (((dt.Hour * 60) + dt.Minute) < i)                return true;            else                return false;        }
все по книжному примеру. но при попытке скомпилировать выдает ошибку:One of the parameters of a binary operator must be the containing typeподскажите плиз, в чем дело
8 ответов

C# allows user-defined types to overload operators.
Вы не можете переопределить операторы для built-in типов.


хм, везде написано что можно, почему тут нельзя?
built-in типов. 
а для каких можно?


Там же в сообщении об ошибке всё довольно ясно написано. Хотябы один из параметров должен быть того типа, в котором определён этот оператор.


Экскалупатор, можно через extension-методы разрулить...
    public static class DateTimeExtensions    {        public static bool IsLess(this DateTime dt, int i)        {             if (((dt.Hour * 60) + dt.Minute) > i)                return true;            else                return false;        }    }
DateTime dtNow = DateTime.Now;dtNow.IsLess(1234567);


Добавлено через 2 минуты и 56 секундPartizan, не, не катит, нужно именно перегрузка, по условию задачи(перегрузить операции сравнения времени)


Экскалупатор, ... нужно именно перегрузка ...создаёшь свой класс MyDateTime, в нём определяешь те операторы сравнения, которые тебя интересуют.


а для каких можно?
Для user-defined.