我对数组有一个小问题。
这是代码:
char[] select = new char[] { '+', '-', '/', '%' };
var rand = new Random();
char num = select[rand.Next(5)];
我有五个CheckBox
控件。如果选中名为 checkboxadd
的控件,我希望数组的值为 { + }
。如果选中名为 checkboxadd
和 checkboxsubtract
的控件,我希望数组的值更改为 { +, - }
。等等。
这可能吗?
更多:我正在创建一个 Windows 窗体应用程序。该应用程序是一个算术学习系统,它提供了一组通过CheckBox
控件选择的操作。我认为我的做法是错误的...谁能帮忙?
在设计器中添加复选框(因此它们是在 InitializeComponent() 调用中创建的)。之后,初始化一个帮助程序数组,该数组允许在 CheckedChanged 事件处理程序中进行优雅编码。因此,您可以对检查状态下的每个更改做出反应:
public partial class Form1 : Form {
private CheckBox[] checkboxes;
private char[] operators;
public Form1() {
InitializeComponent();
checkboxes = new[] { checkBox1, checkBox2, checkBox3, checkBox4, checkBox5 };
checkBox1.Tag = '+';
checkBox2.Tag = '-';
checkBox3.Tag = '*';
checkBox4.Tag = '/';
checkBox5.Tag = '%';
foreach (var cb in checkboxes) {
cb.CheckedChanged += checkBox_CheckedChanged;
}
}
private void checkBox_CheckedChanged(object sender, EventArgs e) {
operators = checkboxes.Where(cb => cb.Checked)
.Select(cb => cb.Tag)
.Cast<char>()
.ToArray();
}
}