当我具有装箱值时,例如:
object input = 31.33M;
我可以使用以下方法将其转换为可转换类型:
public static T ToType<T>( object value)
{
return (T) Convert.ChangeType(value,typeof (T));
}
所以都:
Console.WriteLine (ToType<double>(input));
Console.WriteLine (ToType<decimal>(input));
将返回
31.33 //as double
31.33 //as decimal
(让我们忽略精度问题)
好的。
但是现在我面临着(我使用的是暴露方法描述符及其参数类型的WebAPI)我有给定类型的情况。
所以现在我有:
Type SomeoneSaysMyTypeIs=typeof(decimal)
但是现在我不能使用泛型类型参数。
问题
如何增强我的工作方法:(伪代码)
ToType(SomeoneSaysMyTypeIs,input); //return type :decimal , not object
我找到了解决方案,但是有很多if's
...
可能是我无法正确理解您的问题(请告诉我是否可以),但是介绍另一种方法呢:
public static object ToType(object value, Type t)
{
return Convert.ChangeType(value, t);
}
如您所见,与Convert.ChangeType
直接调用相同:
Convert.ChangeType(value, t);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句