检查复选框值的更好方法

本文关键字:更好 方法 复选框 检查 | 更新日期: 2023-09-27 17:49:44

我写了一段代码,检查窗口中的3个复选框是否全部选中。

  1. 有更好的方式来写这个吗?

  2. 如果复选框不是全部选中或未选中,什么是更好的方法来做我的If语句?

如有任何建议,将不胜感激。提前感谢:)

代码调用并比较复选框的值:

public void TheCheckboxesShouldBeChecked()
{
   bool estCheckboxStatus = Win1.GetCheckboxstatus();
   bool checkboxStatus = true;
   Assert.AreEqual(checkboxStatus, estCheckboxStatus, "Checkbox values did not match the default.");
}
public void TheCheckboxesShouldBeUnChecked()
{
   bool estCheckboxStatus2 = Win1.GetCheckboxstatus2();
   bool checkboxStatus2 = true;
   Assert.AreEqual(checkboxStatus2, estCheckboxStatus2, "Checkbox values did not match the default.");
}

检查并返回复选框值的代码:

public bool GetCheckboxstatus()
{
   bool value = false;
   if (ChkBx1.Checked
      && ChkBx2.Checked 
      && ChkBx3.Checked)
   {
      value = true;
      return value;
   }
   else
   {
      return value;
   }
 public bool GetCheckboxstatus2()
{
   bool value = true;
   if (ChkBx1.Checked
      && ChkBx2.Checked 
      && ChkBx3.Checked)
   {
      value = false;
      return value;
   }
   else
   {
      return value;
   }   

检查复选框值的更好方法

确定是否选中所有:

return ChkBx1.Checked && ChkBx2.Checked && ChkBx3.Checked;

要确定是否选中none,则:

return !ChkBx1.Checked && !ChkBx2.Checked && !ChkBx3.Checked;

对于任何更详细的内容-即,其中被检查和未检查-那么逻辑自然开始看起来有点难看。

关于第一个问题,是的:

在测试类中:

public void TheCheckboxesShouldBeChecked()
{
    AssertCheckState(Win.AreAllCheckboxesChecked());
}
public void TheCheckboxesShouldBeUnChecked()
{
    AssertCheckState(Win.AreAllCheckboxesUnchecked());
}
private void AssertCheckState(bool value)
{
    Assert.AreEqual(true, actual, "Checked state does not match");
}

在你的Win1类:

public bool AreAllCheckboxesChecked
{
    return (ChkBx1.Checked && ChkBx2.Checked && ChkBx3.Checked);
}
public bool AreAllCheckboxesUnchecked()
{
    return (!ChkBx1.Checked && !ChkBx2.Checked && !ChkBx3.Checked);
}
至于你关心的第二个问题,那真的取决于你和你需要什么。您可以公开封装在类属性中的单个检查状态,例如