是否可以将带有空格或特殊字符的字符串添加到枚举中?

发布于 2024-10-12 22:52:56 字数 250 浏览 2 评论 0原文

是否可以将带有空格或特殊字符的字符串添加到枚举中?

例如,我有一个字符串 Insurance KR Users (Name),我尝试将此字符串包含到枚举中:

    public enum MemberGroup
    {
        Insurance KR Users (Name)
    }

但它会引发错误。

如何将这些类型的字符串包含到枚举中?

Is it possible to add a string with spaces or special characters to an enum?

For example, I have a string Insurance KR Users (Name), I have tried to include this string into an enum:

    public enum MemberGroup
    {
        Insurance KR Users (Name)
    }

but it throws an error.

How can I include these types of strings into enum?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

平生欢 2024-10-19 22:52:56

枚举成员本身必须是有效标识符,因此不能包含空格或特殊字符。

但是您可以使用 DescriptionAttribute 为每个枚举值提供更完整的描述:

public enum MemberGroup
{
    [Description("Insurance KR Users (Name)")]
    InsuranceKrUsers_Name
}

要检索描述,请使用如下内容:

public static string GetDescription(Enum value)
{
   FieldInfo fi = value.GetType().GetField(value.ToString()); 
   DescriptionAttribute[] attributes = 
     (DescriptionAttribute[])fi.GetCustomAttributes(
     typeof(DescriptionAttribute), false);
   return (attributes.Length > 0) ? attributes[0].Description : value.ToString();
}

The enum members itself must be a valid identifier, so it can't contain spaces or special characters.

But you could use the DescriptionAttribute to provide a more complete description of each enum value:

public enum MemberGroup
{
    [Description("Insurance KR Users (Name)")]
    InsuranceKrUsers_Name
}

To retrieve the description, use something like this:

public static string GetDescription(Enum value)
{
   FieldInfo fi = value.GetType().GetField(value.ToString()); 
   DescriptionAttribute[] attributes = 
     (DescriptionAttribute[])fi.GetCustomAttributes(
     typeof(DescriptionAttribute), false);
   return (attributes.Length > 0) ? attributes[0].Description : value.ToString();
}
半仙 2024-10-19 22:52:56

枚举本身不能包含空格,正如 Peter 所说,它只能包含一组特定的字符。

但是,您可以使用枚举的 Description 属性来存储一些额外的信息,但这必须使用反射来检索。互联网上有很多如何做到这一点的示例,但仅作为示例, 这里就是其中之一。

The enum itself can't contain spaces, and as Peter says, it can only contain a certain set of characters.

You could use the enum's Description attribute however to store some extra information, but this would have to be retrieved using reflection. There are quite a few examples over the internet how to do it, but just as an example, here is one.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文