我正在尝试为泛型类型复制TryParse,并认为TypeDescriptor可能会给我想要的东西。因此,我提出了以下测试用例,但它失败了,只是想知道是否有人知道我哪里错了。
[TestMethod]
public void Test()
{
string value = "Test";
Guid resultValue;
var result = this.TryConvert(value, out resultValue);
}
public bool TryConvert<T>(string value, out T resultValue)
{
var converter = System.ComponentModel.TypeDescriptor.GetConverter(typeof(T));
if (converter.IsValid(value))
{
resultValue = (T)converter.ConvertFrom(value);
return true;
}
resultValue = default(T);
return false;
}注意,我不想使用try catch块。
干杯安东尼
发布于 2009-07-14 23:40:21
来自TypeConverter.IsValid的MSDN文档
IsValid方法用于验证类型中的值,而不是确定值是否可以转换为给定的类型。
因此,它只会检查值的类型,而不会检查值是否是可以解析的正确输入。
另请参阅this Connect ticket。
https://stackoverflow.com/questions/1128637
复制相似问题