Type type1 = Type.GetType("System.Int32");
string test = "test";
请让我知道如何将测试转换为基于type1对象的对象。 它应该失败或返回null,因为给定的字符串不能转换为int。
这用于验证目的。
答案 0 :(得分:2)
我不太确定我是否理解你。
如果要将字符串安全地转换为int,请参阅
int result;
bool wasConverted;
wasConverted = int.TryParse(test,out result)
有关更通用的转换,请查看ConvertClass。
对于示例Convert.ChangeType,您必须按照自己的方式处理异常。
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));
你可能还有post: Test if Convert.ChangeType will work between two types的战利品。它指出没有" ConversionCheck" API。所以我假设你需要异常捕获
答案 1 :(得分:1)
您可以使用Convert.ChangeType
:
Type type1 = Type.GetType("System.Int32");
string test = "test";
object newObject = Convert.ChangeType(test, type1);