ホームページ >バックエンド開発 >C++ >c#のデフォルト値で列挙文字列を安全に解析する方法は?

c#のデフォルト値で列挙文字列を安全に解析する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-02-01 06:01:09914ブラウズ

How to Safely Parse Enum Strings with a Default Value in C#?

形成方法と列挙タイプの制約

問題の説明:

目標は、

関数を拡張し、マッチングのマッチング値が見つからない場合にデフォルト値を許可する一般的な関数を作成することです。この関数は、ケースによって区別されるべきではありません。

ただし、次のコード定義関数を使用しようとしている場合:Enum.Parse

エラーが発生し、制約が特別なクラス(System.Enum)になることはできないことを指摘します。

<code class="language-csharp">public static T GetEnumFromString<T>(string value, T defaultValue) where T : Enum
{
    // 实现...
}</code>
解決策:

このエラーを解決し、一般的な列挙の使用を許可するために、制約を変更できます。 この更新後の制約により、Tは構造であることを保証し、列挙によって実装されるICONVERTIBLEインターフェイスもサポートします。

改善された実装:

<code class="language-csharp">public static T GetEnumFromString<T>(string value, T defaultValue) where T : struct, IConvertible</code>

次の変更されたコードは、改善の改善を示しています:

このメソッドは一般的な列挙タイプを受け入れ、完全に安全であり、効果的な列挙値のみが返されるようにします。 の使用は、異文化の正しさを保証します。

以上がc#のデフォルト値で列挙文字列を安全に解析する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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