条件
- 已知 类型 的字符串 (比如 “System.Int32”)
- 已经有一个值 比如
var b = "11"
- 求如何将 b转成int32 类型
问题核心
- 不像采用if else 的方式进行判断,然后使用Int.Prase的方式进行转换(是因为工作情景中包含有多种基本类型,写起来累,想偷懒)
解决办法
[TestMethod]
public void MyTestMethod4()
{
//如果有多个请进行for操作
var a = "11";
//获取类型
var ty = Type.GetType("System.Int32");
//数值转换
//这里需要注意,有可能出现异常,根据实际确实是否需要try catch
var b = Convert.ChangeType(a, ty);
//得到结果类型用于预言判定
var t = b.GetType();
Assert.AreEqual(t, typeof(int));
}