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 サイトの他の関連記事を参照してください。