如何在C#中组合多个IF语句

时间:2021-04-09 17:32:08

标签: c# selenium-chromedriver

我这里有一些有缺陷的逻辑..我的目标是如果所有字段都有 "" 值,则返回 true,否则返回 false。我如何在 C# 中解决这个问题?

dict_items

3 个答案:

答案 0 :(得分:3)

我相信这样的事情应该可行。我找不到所有这些变量属于哪个类,但是用正确的类替换 var ,我认为这应该可行。

逻辑:将所有变量添加到列表中,如果所有列表都匹配 GetAttribute("value") == ""

,则使用 lambda 函数返回
    changeFalse(index) {
    this.setState((prevState) => ({
      values: {
        ...prevState.values,
        [prevState.values[index].add]: !prevState.values[index].add,
      },
    }));
  }

答案 1 :(得分:2)

为了从评论中说明@madreflection 的(正确)建议,请考虑以下代码:

public bool CheckFieldsAreEmpty()
{
    Driver.WaitForElementValueNull(smtpHostInputField);
    if (smtpHostInputField.GetAttribute("value") != "")
        return false;
    Driver.WaitForElementValueNull(smtpPortInputField);
    if (smtpPortInputField.GetAttribute("value") != "")
        return false;
    Driver.WaitForElementValueNull(usernameInputField);
    if (usernameInputField.GetAttribute("value") != "")
        return false;
    Driver.WaitForElementValueNull(passwordInputField);
    if (passwordInputField.GetAttribute("value") != "")
        return false;
    Driver.WaitForElementValueNull(senderInputField);
    if (senderInputField.GetAttribute("value") != "")
        return false;
    Driver.WaitForElementValueNull(receiverInputField);
    if (receiverInputField.GetAttribute("value") != "")
        return false;

    return true;
}

当然,正如 @Daniel-Lord’s answer 所强调的那样,您可以使用循环或 LINQ 查询来集中这种重复的逻辑。

答案 2 :(得分:0)

解决此问题的另一种方法是将 WaitForElementValueNull 调用和空字符串检查提取到单独的方法中。类似的东西:

private static bool WaitForElementValueNullAndEmpty(InputFieldType inputField)
{
    Driver.WaitForElementValueNull(inputField);
    return inputField.GetAttribute("value") == "";
}
     
public bool CheckFieldsAreEmpty()
{
    return WaitForElementValueNullAndEmpty(smtpHostInputField) ||
           WaitForElementValueNullAndEmpty(smtpPortInputField) ||
           WaitForElementValueNullAndEmpty(usernameInputField) ||
           WaitForElementValueNullAndEmpty(passwordInputField) ||
           WaitForElementValueNullAndEmpty(senderInputField) ||
           WaitForElementValueNullAndEmpty(receiverInputField);
}

上面的代码将匹配提供的算法,但是如果您想检查所有值是否为空,则应将 || 替换为 &&(正如 Jeremy Caney 所注意到的)

相关问题