1
我试图复制泛型类型的TryParse,并认为TypeDescriptor可能会给我以后的样子。所以我提出了下面的测试案例,但它失败了,只是想知道是否有人知道我出错的地方。使用TypeDescriptor来代替TryParse
[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块。
干杯 安东尼
它失败的地方在哪里?转换器是否为空? IsValid调用是否返回false? – 2009-07-14 23:37:43
IsValid始终返回true。因此此行失败“resultValue =(T)converter.ConvertFrom(value);” – 2009-07-15 00:47:26