'для которого это запрещено, возбудить исключение

  If ((m_CurrentGameState <> GameState.StartScreen) _

   AndAlso (m_CurrentGameState <> GameState.CongratulateUser) _

   AndAlso (m_CurrentGameState <> GameState.ScoldUser)) Then

   Throw New System.Exception("Запрещённое изменение состояния!")

  End If

  'ЧТО СДЕЛАТЬ: Поместите сюда код, выполняющий следующие операции:

  ' 1. Скрытие (Hide), отображение (Show) и перемещение (Move)

  ' элементов управления пользовательского интерфейса

  ' 2. Настройка переменных/состояний игры, соответствующих

  ' данному режиму работы

  '

  ' SetUpGameStateForAskQuestion

 Case GameState.CongratulateUser

  'Если переход в данное состояние осуществляется из состояния,

  'для которого это запрещено, возбудить исключение

  If (m_CurrentGameState <> GameState.AskQuestion) Then

   Throw New System.Exception("Запрещённое изменение состояния!")

  End If

  'ЧТО СДЕЛАТЬ: Поместите сюда код, выполняющий следующие операции:

  ' 1. Скрытие (Hide), отображение (Show) и перемещение (Move)

  ' элементов управления пользовательского интерфейса

  ' 2. Настройка переменных/состояний игры, соответствующих

  ' данному режиму работы

  '

  ' SetUpGameStateForCongratulateUser

 Case GameState.ScoldUser

  'Если переход в данное состояние осуществляется из состояния,

  'для которого это запрещено, возбудить исключение

  If (m_CurrentGameState <> GameState.AskQuestion) Then

   Throw New System.Exception("Запрещённое изменение состояния!")

  End If

  'ЧТО СДЕЛАТЬ: Поместите сюда код, выполняющий следующие операции:

  ' 1. Скрытие (Hide), отображение (Show) и перемещение (Move)

  ' элементов управления пользовательского интерфейса

  ' 2. Настройка переменных/состояний игры, соответствующих

  ' данному режиму работы

  ' SetUpGameStateForScoldUser

 Case Else

  Throw New System.Exception("Наизвестное состояние!")

 End Select

 'Сохранить запрошенное новое состояние в качестве текущего

 m_CurrentGameState = newGameUIState

End Sub

End Class

Листинг 5.2. Неявное изменение состояния приложения (неудачный подход)

'Код, выполняющийся при загрузке формы

Private Sub Form1_Load(ByVal senderAs System.Object,ByVal _

 e As System.EventArgs) Handles MyBase.Load

 TextBox1.Visible = True

 ListBox1.Visible = False

End Sub

'Данные

Private m_someImportantInfoAs String

'Пользователь щелкнул на кнопке и хочет перейти к выполнению

'следующего шага данного приложения. Скрыть текстовое окно и отобразить

'окно списка в отведенном для этого месте.

Private Sub Button1_Click(ByVal senderAs System.Object,ByVal _

 e As System.EventArgs) Handles Button1.Click

 m_someImportantInfo = TextBox1.Text

 TextBox1.Visible = False

 ListBox1.Visible =True

End Sub

Перейти на страницу:

Похожие книги