Здравствуйте, 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));
}