ホームページ > バックエンド開発 > C++ > C# 列挙型を文字列に効果的にマッピングするにはどうすればよいですか?

C# 列挙型を文字列に効果的にマッピングするにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-13 18:21:43
オリジナル
459 人が閲覧しました

How Can I Map C# Enumerations to Strings Effectively?

C# 列挙型を文字列に効率的にマッピングする

C# の列挙型は本質的に整数値にマップされますが、それらを説明的な文字列に効果的に関連付けることで、可読性と保守性が向上します。この記事では、これを実現するための基本的な列挙型定義を超えた手法について説明します。

堅牢なメソッドには、クラス内で静的プロパティを使用することが含まれます。このアプローチでは、列挙型と同様のユーザー エクスペリエンスが提供されますが、直接文字列表現が可能になります。 LogCategory クラスを使用した例を次に示します。

<code class="language-csharp">public class LogCategory
{
    private LogCategory(string value) { Value = value; }

    public string Value { get; private set; }

    public static LogCategory Trace   { get { return new LogCategory("Trace"); } }
    public static LogCategory Debug   { get { return new LogCategory("Debug"); } }
    public static LogCategory Info    { get { return new LogCategory("Info"); } }
    public static LogCategory Warning { get { return new LogCategory("Warning"); } }
    public static LogCategory Error   { get { return new LogCategory("Error"); } }

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

このクラスは列挙機能を反映しています。 Value プロパティは文字列表現を保持し、LogCategory.Info.

のような静的プロパティ経由でアクセスできます。

使用例:

<code class="language-csharp">public static void WriteLog(string message, LogCategory category)
{
    var logEntry = new LogEntry { Message = message };
    Logger.Write(logEntry, category.Value);
}

// Example call
WriteLog("This is a log message.", LogCategory.Warning);</code>
ログイン後にコピー

このアプローチでは、列挙型の明瞭さと使いやすさを維持しながら、コードの明瞭性を向上させるために必要な文字列マッピングを提供します。

以上がC# 列挙型を文字列に効果的にマッピングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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