簡體   English   中英

在C#中使用“default”作為枚舉

[英]Use of “default” as an enum in C#

我有一個關於使用“默認”作為枚舉值的快速問題。 我正在讀取現有XML文件的內容並將元素值解析為枚舉。 以下是XML文件中的示例:

<userpref_load_policy>default</userpref_load_policy>

不幸的是我無法執行以下操作,因為'default'是一個關鍵字! 'at_start'和'in_background'是此元素的其他允許值。

public enum LoadPolicy { default, at_start, in_background }

是否有“簡單”的方法將默認值用作枚舉值或欺騙編譯器? 我有一種討厭的感覺,我需要求助於自定義擴展方法。 我說這是因為我在寫回XML文件時調用.ToString()方法(並且有很多枚舉...)

伊恩,提前感謝任何指針

是的,您可以使用@作為標識符:

public enum LoadPolicy { @default, at_start, in_background }

從C#5規范,第2.4.2節:

本節中給出的標識符規則完全符合Unicode標准附件31建議的規則,但允許下划線作為初始字符(在C編程語言中是傳統的),標識符中允許使用Unicode轉義序列,並且允許使用“@”字符作為前綴,以使關鍵字可用作標識符。

我個人更喜歡在枚舉本身中使用更多的慣用名,但是在枚舉值和它們的XML表示之間有一個映射。 但是,如果您真的必須使用枚舉值名稱,這將有效...

任何關鍵字都可以使用@轉義:

public enum LoadPolicy { @default, at_start, in_background }

@只是一個標記; 不是名字的一部分。 所以稍后當你使用它時可以寫:

LoadPolicy x = LoadPolicy.default;

僅在含義不明確時才需要@

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM