TryParse による汎用文字列変換
「TryParse」を利用して特定の型に対して文字列を検証する汎用拡張機能を作成しようとすると、次のコードが見つかりました:
public static bool Is<T>(this string input) { T notUsed; return T.TryParse(input, out notUsed); }
このコードは失敗します「TryParse」シンボルを解決できないためコンパイルできません。 「TryParse」はどのインターフェイスにも含まれていないため、この機能が実現可能かどうかという疑問が生じます。
TypeDescriptor を使用した代替解決策
1 つのアプローチは、TypeDescriptor クラスを使用することです。 :
public static bool Is(this string input, Type targetType) { try { TypeDescriptor.GetConverter(targetType).ConvertFromString(input); return true; } catch { return false; } }
このメソッドは、ターゲットの型を明示的に渡し、ジェネリックスと実行時の型変換を可能にします。 TypeDescriptor は、文字列をさまざまな型に変換する機能を提供し、目的の型に対して文字列を検証できるようにします。
以上がTryParse を使用して汎用文字列の検証を実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。