0

我有一个应用程序支持几种不同的可视项目组合。每个视图都可以通过单击其相应的树节点来打开和关闭。问题是我不想将每个单独的 node.checked 布尔值存储在我的 .settings 文件中的单独布尔值中。

所以我目前正在尝试使用位掩码,但是我不知道如何将该类型添加到设置文件编辑器的可选类型中。

我应该怎么做才能使其成为可选择的保存类型?

4

3 回答 3

2

枚举类型是幕后的 Int32 - 实际上枚举类型的变量可以分配任何整数值,即使这些值不在原始枚举中。如果您在设置中使用了整数类型,则可以将其转换为您定义的枚举类型以使用它。没有检查整数值是否由枚举定义。

请小心在设置文件中为此使用位掩码,因为可能很难计算出设置的值。例如,如果您希望第 1 位和第 3 位设置为 true,则必须放入设置文件中的值将是“5”,因为这是将第一个和第三个位设置为 1 的整数。

在代码中,您可以使用位移运算符<<来更轻松地读取值,或者在 .NET 4 及更高版本中使用Enum.HasFlag( http://msdn.microsoft.com/en-us/library/system.enum.hasflag.aspx )。

于 2012-06-19T08:39:27.857 回答
1

如果您希望您的自定义类型在 winforms 设置中设置,您必须定义一个TypeConverter以从字符串转换回字符串。

于 2012-06-19T07:37:30.373 回答
1

您可以只使用Int32类型。位掩码是整数(4 字节)或其他指定整数类型(例如Int16)中的非零位集合

于 2012-06-19T07:00:41.093 回答