将字符串转换为基于Type的对象
本文关键字:Type 对象 字符串 转换 | 更新日期: 2023-09-27 18:15:05
Type type1 = Type.GetType("System.Int32");
string test = "test";
请告诉我如何将测试转换为基于type1对象的对象。它应该失败或返回null,因为给定的字符串不能转换为int。
我不太确定我是否理解对了。
如果要安全地将字符串转换为整型,请参阅
int result;
bool wasConverted;
wasConverted = int.TryParse(test,out result)
要了解更多的通用转换,请查看ConvertClass。
例如转换。但是你必须用自己的方式处理异常。
public object SafeConvertChangeType(object value,Type targetType)
{
object result ;
try {
result = Convert.ChangeType(value, targetType);
}
catch (FormatException)
catch (InvalidCastException) {
result = null;
}
return result;
}
你可以调用方法这是:
var result = SafeConvertChangeType("Foo",typeof(int32));
你可能也有一个战利品在这篇文章:测试如果转换。ChangeType将在两个类型之间工作。它指出没有"ConversionCheck"Api。所以我假设你需要异常捕获
您可以使用Convert.ChangeType
:
Type type1 = Type.GetType("System.Int32");
string test = "test";
object newObject = Convert.ChangeType(test, type1);