我有4个复选框。可以选择一个或全部以使程序来完成它的事情。现在,我只有在仅选择其中一个的语句时才有。如果我要在所有情况下进行陈述,我将需要24。是否有更简单的方法?
您可以使用Enum
保持检查值
[Flags]
enum BoxesChecked
{ None = 0, First = 1, Second = 2, Third = 4, Fourth = 8 }
...
var boxesChecked = BoxesChecked.None;
if (box1.Checked)
boxesChecked |= BoxesChecked.First;
然后制作关联动作的地图,并根据给定的组合检索所需的操作
var actionsMap = new Dictionary<BoxesChecked, Action>
{
{ BoxesChecked.First | BoxesChecked.Second, DoSomething },
{ BoxesChecked.Second | BoxesChecked.Fourth, DoSomethingElse },
...
};
var action = actionsMap[boxesChecked];