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