【发布时间】:2010-11-10 20:20:57
【问题描述】:
我正在尝试为泛型类型复制 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 块。
干杯 安东尼
【问题讨论】:
-
哪里出了问题?转换器是否为空? IsValid 调用是否返回 false?
-
IsValid 始终返回 true。因此这条线失败了“resultValue = (T)converter.ConvertFrom(value);”
标签: c# .net type-conversion casting tryparse