0

我有一个枚举如下

private enum gettype
{
    Xml/adf = 1,
    xml/adf and html = 2
};

但据我所知,我知道我们不能在两者之间声明特殊字符空格。我什至尝试了“显示”和“描述”,但没有用。任何人都知道任何解决方法。

4

2 回答 2

2

你不能。枚举成员必须是有效的 C# 标识符。但是,您可以使用各种属性来装饰它们:

using System.ComponentModel;

private enum gettype
{
    [Description("Xml/adf")]
    XmlAdf = 1,

    [Description("Xml/adf and html")]
    XmlAdfAndHtml = 2
}

现在要将枚举值转换为描述字符串,反之亦然,您必须以一种或其他方式使用反射。例如:

var enumValue = gettype.XmlAdfAndHtml;
var attr = (DescriptionAttribute[])
        typeof(gettype).GetField(enumValue.ToString())
                       .GetCustomAttributes(typeof(DescriptionAttribute), true);
var stringValue = attr[0].Description; // Xml/adf and html
于 2013-07-31T04:29:18.300 回答
0

参考以下可能对您有帮助的堆栈溢出链接。

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

如何在 C# 枚举中使用特殊字符?

于 2013-07-31T04:34:05.430 回答