如果我有一个变量“param”,可以是int,double或string,我如何以最有效的方式为param分配另一个字符串?目前我正在做的是这样的事情:
string s = "5";
switch (param)
{
case param.GetType() == "System.Double":
param = Convert.ToDouble(s);
break;
case param.GetType() == "System.Int32":
param = Convert.ToInt32(s);
break;
case param.GetType() == "System.String":
default:
break;
}
我希望将它压缩成这样的东西(伪代码):
param = (typeof(param))s;
或
param = s as tyepof(param);
答案 0 :(得分:3)
Convert.ChangeType(s,param.GetType())
https://msdn.microsoft.com/en-us/library/dtb69x08(v=vs.110).aspx
或
ConvertTo(s,param.GetType())
https://msdn.microsoft.com/en-us/library/y13battt(v=vs.110).aspx
答案 1 :(得分:0)
我不确定这条代码的总体目标是什么,但您可以随时更改变量的类型:
Convert.ChangeType(s, typeof(param));
之后,你可以简单地分配它。
在考虑之后,如果成功,您可以继续使用您的变量。