将 C# 枚举映射到字符串:解决方法
C# 枚举本质上使用整数类型,限制了它们与字符串的直接关联。 然而,一些有效的策略克服了这个限制。
一种方法利用类属性。 通过定义具有字符串属性的类,我们创建了一个模仿枚举行为的结构:
<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>
这两种方法都增强了代码的可读性和灵活性,在需要字符串表示时为标准枚举的限制提供了实用的替代方案。 请注意,第二种方法需要仔细验证以确保仅使用有效的字符串类别。
以上是如何将 C# 枚举映射到字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!