2014-02-27 65 views
-6

我想爲UserAgents定義一個enumerator在c中轉義一個點#

喜歡的東西,

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

compiler is not happy with this

任何想法爲什麼?

編輯:我也試過像逃避使用逐字文字@和一個'\'但沒有做這項工作。

+1

既然可以使用字符串作爲枚舉元素? – Spook

+0

@All:哎呀。我的錯。錯誤地使用了Enums。但是,如何刪除該問題? –

+0

這也可能幫助你http://stackoverflow.com/questions/424366/c-sharp-string-enums – Izikon

回答

4

這不是如何枚舉的工作。

你需要的東西是這樣的:

private enum UserAgents 
{ 
    MSIE70, 
    MSIE60, 
    MSIE50 
} 

但你不必擔心獲取字符串值,就把它的標誌不匹配任何字符串表示。你可以用DescriptionAttributes來裝飾它們,但是你仍然需要做所有的工作來拉出字符串。做

最好的事情是定義一個靜態類UserAgents爲每個用戶代理類型的公共靜態只讀域:

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

然後,你可以做UserAgents.MSIE70訪問該字段。

2
private enum UserAgents 
{ 
    MSIE70, 
    MSIE60, 
    MSIE50, 
} 

試試這個!