Antoine.st Control Structure

Structure

フォームが 2 つあるとして、親から子を開きます。

  • 子がすでに表示されているときは、その子を表示
  • 子が表示されていないときは、新しく子を表示
  • すでに子にデータが表示されているときは、改めて表示するか確認
  • 子のデータが 0 件のときは、確認しない

ベタに考えると


  If childForm.IsExist() Then
    If childForm.IsShowing() Then
      If MsgBox("Show new data?") = MsgBoxResult.Yes Then
        childForm.Show(newData)
      Else
        childForm.Focus()
      End If
    Else
      childForm.Show(newData)
    End If
  Else
    childForm.Show(newData)
  End If

という感じになるでしょうか。論理的な流れを追っているので、わかりやすいといえばわかりやすいものの、ネストが深くなりがちです。また、同じ処理 (chidForm.Show(newData)) が複数回出てくるのも冗長です。見た目上、よりわかりやすく記述する方法はないものでしょうか。