ホームページ >バックエンド開発 >C++ >C# でのジェネリック型の検証に「TryParse」を使用できますか?

C# でのジェネリック型の検証に「TryParse」を使用できますか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-03 16:28:38132ブラウズ

Can `TryParse` Be Used for Generic Type Validation in C#?

「TryParse」によるジェネリック型検証の拡張

指定された文字列が事前定義された型に準拠しているかどうかを検証することを目的として、試行は次のようになります。 「TryParse」を利用した汎用拡張機能の開発が行われています。ただし、「TryParse」が未解決のままであるため、この作業はコンパイルの障害に遭遇しました。

この問題の核心は、「TryParse」が認識可能なインターフェイス内にカプセル化されていないという事実にあります。したがって、そのような実装の実現可能性について疑問が生じます。

考えられる解決策の 1 つは、この目的のために特別に設計されたメカニズムである TypeDescriptor クラスを活用することです。このクラスを組み込むことで、より堅牢なアプローチを採用できます。

public static T Convert<T>(this string input)
{
    try
    {
        var converter = TypeDescriptor.GetConverter(typeof(T));
        if (converter != null)
        {
            // Cast ConvertFromString(string text) : object to (T)
            return (T)converter.ConvertFromString(input);
        }
        return default(T);
    }
    catch (NotSupportedException)
    {
        return default(T);
    }
}

この更新されたアプローチには、いくつかの利点があります。

  • 例外の必要性がなくなり、より洗練された、効率的なソリューションです。
  • ジェネリックスに依存するのではなく、特定の型を受け入れる柔軟性が維持され、より優れたソリューションが可能になります。汎用性。

最終的に、この改訂されたソリューションは最初の課題に効果的に対処し、事前定義された型に対する特定の入力文字列の有効性を確認する手段を提供します。

以上がC# でのジェネリック型の検証に「TryParse」を使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。