Ist das mehrzeilige if-Anweisung zu Komplex?

Ich bin Validierung von Eingaben in einem Formular und dem Versuch, den Benutzer auffordern, die von unsachgemäßer Eingang(s) basiert auf der Kombination von Steuerelementen verwendet.

Zum Beispiel, ich habe 2 Kombinationsfelder und 3 Textfelder. Die 2 combo-Boxen müssen immer einen anderen Wert als die erste (standardmäßige) Wert, aber eine von drei oder zwei von drei oder alle Textfelder gefüllt werden kann, um die form gültig.

In einem solchen Szenario, ich habe einen 6-Zeile if-Anweisung, um zu versuchen, um den test problemlos lesbar ist:

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
}

Ich habe 2 Fragen:

  1. Sollte diese Art von wenn Aussage unter allen Umständen vermieden werden?

  2. Wäre es besser zu umschließen, dieser test mit einer anderen Methode? (Dies würde eine gute Wahl sein, diese überprüfung geschieht in mehr als einem Szenario)

Dank für euren input(s)!

  • Es schlägt kondensierend es in einer Zeile.
  • Wahrscheinlich off-topic: ich bevorzuge normalerweise TextBoxA.Text.Trim() zu gewährleisten zufälligen eingegeben, Leerzeichen zählen nicht.
  • Keim, ich mache diese tests verwenden, Ihre nicht off-topic, wollte nur nicht, gehören Sie hier, da war ich zu schreiben versucht, die Frage schnell.
Schreibe einen Kommentar