Windows窗体将两个单选按钮链接到包含if-else语句的相同方法(初学者!)
本文关键字:语句 if-else 初学者 方法 包含 链接 窗体 两个 Windows 单选按钮 | 更新日期: 2023-09-27 18:19:21
我刚开始用Windows Form工作,有一些我不能弄清楚。我在表单上有两个单选按钮,它们被列为相同的方法。该方法看起来像这样,并且它在MainForm.cs以外的类中:
public double CalcBMR()
{
double bmr = 0.0;
if (isFemale)
bmr = (10 * weight + 6.25 * height - 5 * age) - 161;
else
bmr = (10 * weight + 6.25 * height - 5 * age) + 5;
return bmr;
}
我要做的是告诉程序rbtnFemale。Checked = isFemale = true,即rbtnMale。Checked = isFemale = false,但是考虑到isFemale bool必须是私有的(并且在另一个类中)并且我不能为每个选项编写一个不同的方法,我该如何做到这一点?这是我尝试过的,但显然它不起作用:
private void rbtnFemale_CheckedChanged(object sender, EventArgs e)
{
bool isFemale = true;
bmrCalc.CalcBMR();
}
或者
private void rbtnFemale_CheckedChanged(object sender, EventArgs e)
{
bool isFemale = true;
bmrCalc.CalcBMR(isFemale);
}
这当然不工作,因为"没有重载方法CalcBMR()接受1个参数"。我不知道该怎么办。提前谢谢大家
我要做的是告诉程序rbtnFemale。Checked = isFemale = true
然后这样做,将此表达式替换为旧的isFemale
变量。
public double CalcBMR()
{
double bmr = 0.0;
if (rbtnFemale.Checked)
bmr = (10 * weight + 6.25 * height - 5 * age) - 161;
else
bmr = (10 * weight + 6.25 * height - 5 * age) + 5;
return bmr;
}
如果你不希望你的CalcBMR
函数依赖于UI元素,让它接受一个bool isFemale
代替。
public double CalcBMR(bool isFemale)
{
double bmr = 0.0;
if (isFemale)
bmr = (10 * weight + 6.25 * height - 5 * age) - 161;
else
bmr = (10 * weight + 6.25 * height - 5 * age) + 5;
return bmr;
}
,并使用适当的参数
调用它private void rbtnFemale_CheckedChanged(object sender, EventArgs e)
{
bmrCalc.CalcBMR(rtbnFemale.Checked);
}
- 你必须用public关键字在单选按钮更改方法中声明女性变量。
- 您的计算方法不能接受任何参数。