![](/img/trans.png)
[英]Why operators << and >> are not realized for flag enums in 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.