将字符串转换为另一个变量的类型

时间:2016-05-26 17:38:41

标签: c# casting

如果我有一个变量“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);

2 个答案:

答案 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));

之后,你可以简单地分配它。

在考虑之后,如果成功,您可以继续使用您的变量。