首页 >后端开发 >C++ >如何将 C# 枚举映射到字符串?

如何将 C# 枚举映射到字符串?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-13 18:06:47819浏览

How Can I Map C# Enums to Strings?

将 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn