(C#)入力項目Aと入力項目Bのどちらか片方だけが入力されていない状態を入力チェック
2つの入力項目があって、どちらか片方に入力があれば、もう片方にも入力を求めたいとき。
目次
普通に書く
if
文で普通に書くとこんな感じ。
private void IfCheck(object sender, RoutedEventArgs e) { isBox1NullFlg = String.IsNullOrEmpty(this.TextBox1.Text); isBox2NullFlg = String.IsNullOrEmpty(this.TextBox2.Text); if (!isBox1NullFlg) { if (isBox2NullFlg) { MessageBox.Show("未入力項目があります"); } } if (!isBox2NullFlg) { if (isBox1NullFlg) { MessageBox.Show("未入力項目があります"); } } }
でも、なんか冗長な感じがする…
工夫する
実現したいのは、こういうことなんだから、排他的論理和を使えばすっきりする。
private void XORCheck(object sender, RoutedEventArgs e) { isBox1NullFlg = String.IsNullOrEmpty(this.TextBox1.Text); isBox2NullFlg = String.IsNullOrEmpty(this.TextBox2.Text); if (isBox1NullFlg ^ isBox2NullFlg) { MessageBox.Show("未入力項目があります"); } }
資格の知識なんかでも、持っておいて損はないな、と思います。