ホームページ > バックエンド開発 > C++ > タイプセーフ列挙と明示的なタイプ変換を使用して、列挙の文字列表現を改善するにはどうすればよいですか?

タイプセーフ列挙と明示的なタイプ変換を使用して、列挙の文字列表現を改善するにはどうすればよいですか?

DDD
リリース: 2025-01-29 07:46:08
オリジナル
901 人が閲覧しました

How Can We Improve String Representation of Enumerations Using Type-Safe Enums and Explicit Type Conversion?

列挙文字列表現の代替案以前のスキームでは、カスタム属性を使用して列挙文字列表現を取得します。関数は有効ですが、長く見える場合があります。以下は、タイプセキュア列挙モードを使用する代替方法です。 このモデルは、文字列と値の表現を含む列挙の明示的なインスタンスを定義します。 メソッド文字列表現フォームを返します。

異なるタイプ変換
<code class="language-csharp">public sealed class AuthenticationMethod
{
    private readonly string name;
    private readonly int value;

    public static readonly AuthenticationMethod FORMS = new AuthenticationMethod(1, "FORMS");
    public static readonly AuthenticationMethod WINDOWSAUTHENTICATION = new AuthenticationMethod(2, "WINDOWS");
    public static readonly AuthenticationMethod SINGLESIGNON = new AuthenticationMethod(3, "SSN");        

    private AuthenticationMethod(int value, string name)
    {
        this.name = name;
        this.value = value;
    }

    public override string ToString()
    {
        return name;
    }
}</code>
ログイン後にコピー

ToString()明示的なタイプ変換を有効にするために、クラスにマッピングするための静的メンバーを追加できます:

クラスのコンストラクターの辞書に入力してください:

最後に、ユーザー定義のタイプ変換演算子を追加します:

<code class="language-csharp">private static readonly Dictionary<string, AuthenticationMethod> instance = new Dictionary<string, AuthenticationMethod>();</code>
ログイン後にコピー
これにより、文字列を明示的に

インスタンスに変換して、タイプ変換プロセスをより直接的にすることができます。

以上がタイプセーフ列挙と明示的なタイプ変換を使用して、列挙の文字列表現を改善するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート