我有4个复选框。可以选择一个或所有程序来执行其操作。现在我只有if语句时才选择其中一个。如果我要做所有情况的陈述,我将需要24.有更简单的方法吗?
答案 0 :(得分:0)
您可以使用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];