TryParseをジェネリック型にレプリケートしようとしていて、TypeDescriptorが私に何を与えているかもしれないと考えました。だから私は次のテストケースを思いついたが、それは失敗している、誰かが私が間違っていることを知っているかどうか疑問に思う。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 try catchブロックは使用しません。 TypeConverter.IsValid
ためのMSDNドキュメントから
どこが失敗していますか?コンバーターはヌルですか? IsValid呼び出しがfalseを返していますか? –
IsValidは常にtrueを返します。したがって、この行は "resultValue =(T)converter.ConvertFrom(value);"に失敗します。 –