为什么VS一直坚持要求另一个合适的人?

时间:2012-04-25 22:33:52

标签: c# boolean

此代码:

private bool ValToEnterIsValid(string ACandidateVal) {
  return ((ACandidateVal == "1") && (!String.IsNullOrWhiteSpace(textBoxPhoneNum1.Text)) ||
         ((ACandidateVal == "2") && (!String.IsNullOrWhiteSpace(textBoxPhoneNum2.Text)) ||
     ((ACandidateVal == "3") && (!String.IsNullOrWhiteSpace(textBoxPhoneNum3.Text));
}

...以及此代码:

private bool ValToEnterIsValid(string ACandidateVal) {
  return (((ACandidateVal == "1") && (!String.IsNullOrWhiteSpace(textBoxPhoneNum1.Text)) ||
          ((ACandidateVal == "2") && (!String.IsNullOrWhiteSpace(textBoxPhoneNum2.Text)) ||
      ((ACandidateVal == "3") && (!String.IsNullOrWhiteSpace(textBoxPhoneNum3.Text)));
}

...导致VS说,“)预期” - 无论我添加了多少正确的parens,试图幽默它!

3 个答案:

答案 0 :(得分:8)

每行的括号都是不平衡的。此外,由于优先工作的方式,你有无关的parens;我把它写成

private bool ValToEnterIsValid(string ACandidateVal) {
  return (ACandidateVal == "1" && !String.IsNullOrWhiteSpace(textBoxPhoneNum1.Text)) ||
         (ACandidateVal == "2" && !String.IsNullOrWhiteSpace(textBoxPhoneNum2.Text)) ||
         (ACandidateVal == "3" && !String.IsNullOrWhiteSpace(textBoxPhoneNum3.Text));
}

另外,您是否有使用三个变量而不是数组的原因?

答案 1 :(得分:2)

似乎你错过了a)if:

的每一部分
private bool ValToEnterIsValid(string ACandidateVal) {
  return (( (ACandidateVal == "1") && 
            (!String.IsNullOrWhiteSpace(textBoxPhoneNum1.Text)) ) ||
          ( (ACandidateVal == "2") && 
            (!String.IsNullOrWhiteSpace(textBoxPhoneNum2.Text)) ) ||
          ( (ACandidateVal == "3") && 
            (!String.IsNullOrWhiteSpace(textBoxPhoneNum3.Text)) )
         );
}

答案 2 :(得分:1)

你在每个结尾都缺少额外的“)”!String.IsNullOrWhiteSpace比较:

此代码有效:

        private bool ValToEnterIsValid(string ACandidateVal) {
          return (
              (ACandidateVal == "1") && (!String.IsNullOrWhiteSpace(textBoxPhoneNum1.Text)) ||
              (ACandidateVal == "2") && (!String.IsNullOrWhiteSpace(textBoxPhoneNum1.Text)) ||
              (ACandidateVal == "3") && (!String.IsNullOrWhiteSpace(textBoxPhoneNum1.Text))
             );
        }

        private bool ValToEnterIsValid(string ACandidateVal) {
          return (
              ((ACandidateVal == "1") && (!String.IsNullOrWhiteSpace(textBoxPhoneNum1.Text))) ||
              ((ACandidateVal == "2") && (!String.IsNullOrWhiteSpace(textBoxPhoneNum2.Text))) ||
              ((ACandidateVal == "3") && (!String.IsNullOrWhiteSpace(textBoxPhoneNum3.Text)))
              );
        }