假设我有一个具有类型为object的属性的类。该属性将被赋予整数类型,short,uint,int32,int64等。
是否有一些高效的方法可以对该属性进行比较,例如obj1.Value> obj2.Value?
当然这会产生错误,我想我可以用像
这样的逻辑做一个方法 if (value1 is Int64 && value2 is Int32)
{
return (Int64) value1 > (Int32) value2;
}
else if (value1 is Int32 && value2 is Int64)
{
return (Int32) value1 > (Int64) value2;
}
等等所有组合,但它似乎相当cludgy :)我宁愿不使用反射或动态的性能原因。基本上我想要的是多态操作数
答案 0 :(得分:0)
你可以做这样的事情
return ( Convert.ToInt64(value1) > Convert.ToInt64(value1) );
相当于
return ((IConvertible)value1).ToInt64(null) > ((IConvertible)value2).ToInt64(null);
答案 1 :(得分:0)
您可以将每个值转换为double
。
return Convert.ToDouble(value1) > Convert.ToDouble(value2);