我将枚举作为标志,例如:
[Flags]
public enum ResultValues
{
None = 0,
Red = 1,
Yellow = 2,
Green = 4,
Other = 8
};
在我的代码中,我可以或连接这些标志并且一切正常。
现在我将此枚举类型的变量存储在设置中。
如果添加设置条目,则可以从上方键入枚举,并将其中一个(!)设置为默认值(例如绿色)作为设置。
<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
关于带有标志枚举的 C# 设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57610197/