Is this multi line if statement too complex?

Posted by AndHeCodedIt on Stack Overflow See other posts from Stack Overflow or by AndHeCodedIt
Published on 2011-01-07T16:46:47Z Indexed on 2011/01/07 16:54 UTC
Read the original article Hit count: 167

I am validating input on a form and attempting to prompt the user of improper input(s) based on the combination of controls used.

For example, I have 2 combo boxes and 3 text boxes. The 2 combo boxes must always have a value other than the first (default) value, but one of three, or two of three, or all text boxes can be filled to make the form valid.

In one such scenario I have a 6 line if statement to try to make the test easily readable:

if ((!String.Equals(ComboBoxA.SelectedValue.ToString(), DEFAULT_COMBO_A_CHOICE.ToString())
    && !String.IsNullOrEmpty(TextBoxA.Text)
    && !String.Equals(ComboBoxB.SelectedValue.ToString(), DEFAULT_COMBO_B_CHOICE.ToString()))        
    ||
    (!String.IsNullOrEmpty(TextBoxB.Text)
    || !String.IsNullOrEmpty(TextBoxC.Text)))
{
    //Do Some Validation
}

I have 2 questions:

  1. Should this type of if statement be avoided at all cost?

  2. Would it be better to enclose this test in another method? (This would be a good choice as this validation will happen in more than one scenario)

Thanks for your input(s)!

© Stack Overflow or respective owner

Related posts about c#

Related posts about if-statement