1


1

私は総称型のためにTryParseを複製しようとしています、そしてTypeDescriptorは私が後になっているものを私に与えるかもしれないと思った。 それで私は次のようなテストケースを思いついたのですが失敗しています。

[TestMethod] public void Test(){文字列値= "テスト"; Guid resultValue; var result = this.TryConvert(value、out resultValue); }

public bool TryConvert(文字列値、out T resultValue){変数コンバータ= System.ComponentModel.TypeDescriptor.GetConverter(typeof(T)); if(converter.IsValid(value)){resultValue =(T)converter.ConvertFrom(value); trueを返します。 resultValue = default(T); falseを返します。 }

注意してください、私はtry catchブロックを使用したくありません。

乾杯アンソニー

1 Answer


2


`+ TypeConverter.IsValid +`のMSDNドキュメントから:

_ `+ IsValid +`メソッドは、値を特定の型に変換できるかどうかを判断するのではなく、型内の値を検証するために使用されます。 _

そのため、値のタイプのみがチェックされ、値が解析可能な正しい入力であるかどうかはチェックされません。

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=93559 [このConnectチケット]も参照してください。