在c#中转义一个点

时间:2014-02-27 09:05:38

标签: c# .net enums escaping

我正在尝试为enumerator定义UserAgents

类似的东西,

private enum UserAgents
    {
        "MSIE 7.0",
        "MSIE 6.0",
        "MSIE 5.0",
    }

但是compiler is not happy with this

任何想法为什么?

编辑:我也尝试过使用逐字字面@和'\'来逃避,但这不起作用。

2 个答案:

答案 0 :(得分:4)

这不是枚举的工作方式。

你需要这样的东西:

private enum UserAgents
{
    MSIE70,
    MSIE60,
    MSIE50
}

但是你必须担心从中获取字符串值,标志与字符串表示也不匹配。你可以使用DescriptionAttributes来装饰它们,但是你仍然需要做所有工作来拉出字符串。

最好的办法是为每个用户代理类型定义一个带有公共静态只读字段的静态类UserAgents

public static UserAgents
{
   public static readonly MSIE70 = "MSIE 7.0"; 
   //etc...
}

然后您可以UserAgents.MSIE70访问该字段。

答案 1 :(得分:2)

private enum UserAgents
{
    MSIE70,
    MSIE60,
    MSIE50,
}

试试这个!