猿问

带有标志枚举的 C# 设置

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


[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


慕村225694
浏览 85回答 2
2回答

尚方宝剑之说

您只需用逗号分隔即可存储值:<Value&nbsp;Profile="(Default)">Green,&nbsp;Other</Value>内置解析器会将这样的字符串转换为正确的“组合”枚举值:ResultValues.Green&nbsp;|&nbsp;ResultValues.Other

慕的地10843

逗号分隔:Flags&nbsp;f&nbsp;=&nbsp;Enum.Parse<Flags>("Red,Yellow,Green");
随时随地看视频慕课网APP
我要回答