Я пытаюсь реплицировать 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;
}
Примечание. Я не хочу использовать блок catch try.
Приветствие Энтони
Где это не удается? Является ли конвертер нулевым? Является ли вызов IsValid возвратом false? –
IsValid всегда возвращает true. Следовательно, эта строка не работает «resultValue = (T) converter.ConvertFrom (value);» –