我的情况应该很简单...我要从FROM转换的类型总是'string'。我想转换为...的内容可能很多,例如int,DateTimes,...字符串等。
这很容易:
string valueToConvertFrom = "123";
int blah = Convert.ToInt32(valueToConvertFrom);
但是...我不知道(直到运行时)我需要转换为的值是“Int”(或其他值)。我已经试过了:
string valueToConvertFrom = "123";
Type convertToType = typeof(int);
object blah = Convert.ChangeType(valueToConvertFrom, convertToType);
但这给了我以下错误:“对象必须实现IConvertible。”
我不想执行switch语句并根据类型名称调用“Convert.ToBlah” ...有什么建议吗?
最佳答案
干净的方法是使用TypeConverter。
您可以通过调用TypeDescriptor.GetConverter并使用类型转换器的实例进行转换来获取类型转换器的实例。
所以像这样:
string valueToConvertFrom = "123";
Type convertToType = typeof(int);
TypeConverter tc = TypeDescriptor.GetConverter(convertToType);
object blah =tc.ConvertFromString(valueToConvertFrom);
关于.net - 如何在运行时转换类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/312858/