簡體   English   中英

標記枚舉的C#設置

[英]C# Settings with Flag Enums

我像以下標志一樣枚舉:

[Flags]
public enum ResultValues
{
    None = 0,
    Red = 1,
    Yellow = 2,
    Green = 4,
    Other = 8
};

在我的代碼中,我可以OR連接這些標志,一切正常。

現在我在設置中存儲此枚舉類型的變量。 如果我添加一個設置條目,我可以將上面的枚舉設置為類型,並選擇/設置一個(!)的值作為默認值(例如綠色)。

<Setting Name="FilterResult" Type="MyNamespace.ResultValues" Scope="User">
  <Value Profile="(Default)">Green</Value>
</Setting>

但是如何將值的組合存儲為默認值 - 因為我可以在代碼中執行此操作

ResultValues.Red | ResultValues.Yellow | ResultValues.Green | ResultValues.Other

您可以通過用逗號分隔它們來存儲值:

<Value Profile="(Default)">Green, Other</Value>

內置解析器會將這樣的字符串轉換為正確的“組合”枚舉值:

ResultValues.Green | ResultValues.Other

逗號分隔:

Flags f = Enum.Parse<Flags>("Red,Yellow,Green");

暫無
暫無

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

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