如何在枚举中声明特殊字符和空格

时间:2013-07-31 04:27:26

标签: c# enums

我的枚举如下

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

但据我所知,我知道我们无法在两者之间声明特殊字符空格。 我甚至试过“显示”和“描述”虽然没有用。 所以任何人都知道任何工作。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)