Запись пользовательских обработчиков событий для mouseClick
Напишите отдельные методы для входа в систему и загрузки.
Регистрация пользовательских обработчиков событий для события нажатия кнопки
Я предполагаю, что есть некоторая логика, которая решает, что текст кнопки должен быть "скачать" или "войти". В этот момент, конечно, установите текст кнопки, но также зарегистрируйте соответствующий обработчик события.
Это позволит вам иметь одну кнопку, которая делает что угодно
protected void Login_MouseClickHandler (object obj ,MouseClickEventArgs e) {
// login logic
// this would be the logic you say is "inside the login button"
}
protected void Download_MouseClickHandler (object obj ,MouseClickEventArgs e) {
// download logic
}
// pseudo code
// note that there is only one button
if process is login then
theButton.text = "login"
theButton.MouseClick += new MouseClickEventHandler(Login_MouseClickHandler)
else
button.text = "download"
theButton.MouseClick += new MouseClickEventHandler (Download_MouseClickHandler)
end if
Мысли о разработке программного обеспечения
- Проще продлить. Нам не нужна еще одна кнопка для каждого нового действия
- Разделение проблем - например, весь код входа в систему выполняется отдельным методом, который только выполняет вход в систему.
- Изменения изолированы и сведены к минимуму. Написание новых отдельных методов менее подвержено ошибкам, чем встраивание этого кода в структуру
if else
. И, следовательно, структура if else
остается простой и понятной.