Re: Сравнение Generic
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 05.04.16 07:16
Оценка:
Здравствуйте, e.thrash, Вы писали:


ET>как сделать сравнение с нулем? на входе могут быть int, decimal

Convert.ChangeType

class Checker  
    {
        public bool Check<T>(T item) where T : IComparable<T>
        {
            return item.CompareTo(Convert.ChangeType(0,typeof(T)) < 0;
        }        
    }


Вот пример для перечислений

 var парам = параметры[0];
            var тип = парам.GetType();

            long res = (long)Convert.ChangeType(парам, typeof(long));

            for (int i = 1; i < параметры.Length; i++)
                res |= (long)Convert.ChangeType(параметры[i], typeof(long));


            if (тип.IsEnum)
            {
                var ТипЗначений = Enum.GetUnderlyingType(тип);
                var number = Convert.ChangeType(res, ТипЗначений);
                return AutoWrap.ОбернутьОбъект(Enum.ToObject(тип, number));
            }
и солнце б утром не вставало, когда бы не было меня
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.