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

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

Mary-Kate Olsen
リリース: 2025-01-13 18:06:47
オリジナル
810 人が閲覧しました

How Can I Map C# Enums to Strings?

C# 列挙型を文字列にマッピングする: 回避策

C# 列挙型は本質的に整数型を使用するため、文字列との直接の関連付けが制限されます。 ただし、いくつかの効果的な戦略はこの制限を克服します。

1 つのアプローチはクラス プロパティを利用します。 文字列プロパティを持つクラスを定義することで、列挙型の動作を模倣する構造を作成します。

<code class="language-csharp">public class LogCategory
{
    public string Value { get; private set; }

    public static LogCategory Trace { get; } = new LogCategory("Trace");
    public static LogCategory Info { get; } = new LogCategory("Info");
    // ... other categories
}</code>
ログイン後にコピー

これにより、文字列表現へのタイプセーフなアクセスが可能になります。

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

// Usage:
WriteLog("Log message", LogCategory.Info);</code>
ログイン後にコピー

あるいは、タイプセーフな文字列パラメータを直接使用することもできます。

<code class="language-csharp">public static void WriteLog(string message, string category)
{
    // Add validation to ensure category is a valid value
    Logger.Write(message, category);
}

// Usage:
WriteLog("Log message", "Info");</code>
ログイン後にコピー

どちらの方法もコードの可読性と柔軟性を強化し、文字列表現が必要な場合に標準列挙型の制限に対する実用的な代替手段を提供します。 2 番目のアプローチでは、有効な文字列カテゴリのみが使用されていることを確認するための慎重な検証が必要であることに注意してください。

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

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