作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有 7 个单选按钮和 5 个复选框。这是用于选择第一个单选按钮和第一个复选框以及其他复选框的代码。这仅在选中第一个复选框时有效。这意味着我已经为每个复选框重新创建了这个。如果有意义的话,这就是第一个单选按钮的全部内容。我意识到这样做只会是一大堆代码。它会起作用,但会非常草率。
所以,我想知道是否有某种方法可以在数组或其他东西中做到这一点?我只想缩短很多。对此的任何帮助将不胜感激。谢谢你。
if (radBrick.Checked)
{
intBrick = 100000;
intTotal = intBrick;
if (chkBasketball.Checked)
{
intBasketball = 50000;
intTotal = intBrick + intBasketball;
if (chkFire.Checked)
{
intFire = 500;
intTotal = intBrick + intBasketball + intFire;
if (chkMarble.Checked)
{
intMarble = 20000;
intTotal = intBrick + intBasketball + intFire + intMarble;
if (chkSteel.Checked)
{
intStain = 10000;
intTotal = intBrick + intBasketball + intFire + intStain + intMarble;
if (chkGarage.Checked)
{
intGarage = 5000;
intTotal = intBrick + intBasketball + intFire + intStain + intMarble + intGarage;
}
}
}
}
}
lblTotal.Text = intTotal.ToString("C");
}
最佳答案
是的,你可以——方法如下:
int[] add = new[] {100000, 50000, 500, 20000, 10000, 50000};
bool[] check = new[] {radBrick.Checked, chkBasketball.Checked, chkFire.Checked, chkMarble.Checked, chkSteel.Checked, chkGarage.Checked};
int sum = 0;
for (int i = 0 ; i != add.Length ; i++) {
if (check[i]) {
sum += add[i];
}
}
关于c# - 有没有办法我可以使用数组或其他东西来减少这里的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20448401/
我是一名优秀的程序员,十分优秀!