我将枚举作为标志,例如:

[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/

10-09 06:18