文字列値を検証するための汎用拡張メソッドを作成しようとしましたが、「TryParse」がどのメソッドにも定義されていないという問題が発生しました。
を使用した代替アプローチTypeDescriptor
TypeDescriptor クラスは、特定のデータ型の型コンバーターを取得する方法を提供します。このコンバーターは、文字列を他の型に変換したり、他の型から文字列を変換したりするために使用できます。コードの更新バージョンは次のとおりです。
public static bool Is(this string input, Type targetType) { try { TypeDescriptor.GetConverter(targetType).ConvertFromString(input); return true; } catch { return false; } }
このバージョンでは、任意のターゲット型を渡すことができ、適切なコンバーターを使用して文字列をその型に変換しようとします。変換が成功すると、メソッドは true を返します。それ以外の場合は false を返します。
例外と代替手段
例外ベースのアプローチは機能しますが、より堅牢なオプションを好む場合があります。例外を使用する代わりに、Nullable
または、int、double、DateTime などの一般的な型のオーバーロードを作成し、型ごとにカスタム ロジックを定義することもできます。これにより、汎用実装の必要性がなくなり、より効率的でタイプセーフな変換が提供されます。
以上が文字列を特定の型に解析できるかどうかを一般的にテストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。