【发布时间】:2019-08-22 13:12:46
【问题描述】:
我将枚举作为标志,例如:
[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
【问题讨论】:
-
这些是什么类型的设置(即,这是用于什么类型的应用程序)以及您如何设置值?
-
您可以将设置存储为整数。 Red + Yellow = 3。然后您可以将 3 解析为 Red |黄色带功能。
-
@Seabizkit 在处理按位标志时,0 始终意味着无,因为它的状态会将所有位设置为 0。否则,值 3 将意味着无和红色,这是没有意义的。跨度>
-
@juharr 是的,对不起,你说得非常正确。生病删除...但他不会仍然存储 15
-
@Seabizkit 这是所有 4 个组合的值,可以很好地存储在数据库中,但在 xml 文件中,您通常需要更易读的内容,例如建议的逗号分隔名称。