C# 在C语言中用二进制表示一个数字#

C# 在C语言中用二进制表示一个数字#,c#,C#,我有四个复选框,用户可以选择任何复选框,我想将选中的复选框存储在一个值中。逻辑应该是这样的 项目值 复选框1 复选框2 复选框3 4 复选框4 8 如果用户选择Checkbox1和Checkbox2,则应将其存储3如果选择Checkbox1、Checkbox2和Checkbox3,则应将其存储7。它会储存一些价值。现在我想从存储的值中导出选中的复选框,这意味着如果值为7,则选中复选框1、复选框2和复选框3 我怎样才能做到这一点?如果有任何选项可以帮助我。要确定应选中哪些复选框,请使用: 将枚举与

我有四个复选框,用户可以选择任何复选框,我想将选中的复选框存储在一个值中。逻辑应该是这样的

项目值
复选框1
复选框2
复选框3 4
复选框4 8

如果用户选择Checkbox1和Checkbox2,则应将其存储3如果选择Checkbox1、Checkbox2和Checkbox3,则应将其存储7。它会储存一些价值。现在我想从存储的值中导出选中的复选框,这意味着如果值为7,则选中复选框1、复选框2和复选框3


我怎样才能做到这一点?如果有任何选项可以帮助我。

要确定应选中哪些复选框,请使用:


枚举
与属性一起使用:

[Flags]
public enum CheckBoxEnum
{
   Value1 = 1,
   Value2 = 2,
   Value3 = 4,
   Value4 = 8,
}
然后可以使用位操作检查结果:

var res = CheckBoxEnum.Value1 | CheckBoxEnum.Value2;
var res2 = CheckBoxEnum.Value1 & CheckBoxEnum.Value2;
UPD: @Glorfindel的答案更优雅,但您应该使用按位或而不是AND

Checkbox1.Checked = value | 1;
Checkbox2.Checked = value | 2;
Checkbox3.Checked = value | 4;
Checkbox4.Checked = value | 8;
您正在查找,应用于
Enum

[Flags]
public enum CheckboxesSelected
{
    Checkbox1 = 1,
    Checkbox2 = 2,
    Checkbox3 = 4,
    Checkbox4 = 8
}
然后: 如果选中复选框控件,则可以执行以下操作:

CheckboxesSelected result = CheckboxesSelected.Checkbox1 | CheckboxesSelected.Checkbox2; //result will be 3

当存储值时,它应该是或运算符,它应该是
,但我假设OP已经成功地完成了这项工作。(可能使用
+
而不是
|
)谢谢,@Glorfindel它真的很有用!
CheckboxesSelected result = CheckboxesSelected.Checkbox1 | CheckboxesSelected.Checkbox2; //result will be 3