检查复选框值的更好方法

时间:2014-03-12 23:15:56

标签: c# checkbox boolean

我编写了一段代码来检查窗口中的3个复选框,如果它们都已选中或未选中。

  1. 有没有更好的方法来写这个?

  2. 如果同时没有选中或取消选中复选框,那么做出我的IF语句的更好方法是什么?

  3. 任何建议将不胜感激。在此先感谢:)

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

    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;
       }   
    

2 个答案:

答案 0 :(得分:1)

确定是否选中所有

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

确定是否选中

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

对于任何更详细的内容 - 例如哪些被选中和未选中 - 那么逻辑自然会开始看起来有点难看。

答案 1 :(得分:0)

关于第一个问题,是的,有:

在您的测试课程中:

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);
}

关于你的第二个问题,它真的取决于你和你需要什么。例如,您可以公开封装在类属性中的各个检查状态。