Я изучаю некоторые C # и в уроках, они обычно помещают большую часть кода на нажатия кнопок ради обучения
Причинато, что размещение кода в обработчике щелчков было бы плохим, связано с тем, что обработчик щелчков имеет определенное отношение к пользовательскому интерфейсу, а остальная часть вашего кода может и не быть.
Читатель потока читает из потока.Код, который обрабатывает поток, должен быть сгруппирован с ним.Код, который обрабатывает тот факт, что вы нажали на пользовательский интерфейс, не имеет ничего общего с чтением из потока, поэтому его следует отделить.
Как правило, вы должны сгруппировать код так, чтобы части кода, которые логически похожи, быливместе, и те части вашего кода, которые имеют дело с совершенно разными вещами, разделены.Это даст вам «высокую сплоченность ».Это связано с Принципом единой ответственности .
Должны ли все переменные и объекты объявляться вне функции нажатия кнопки?
Абсолютно нет.Если имеет смысл создавать определенный объект при обработке события пользовательского интерфейса, сделайте это.
Однако, как я уже упоминал ранее, если вы имеете дело с вещами, не относящимися к пользовательскому интерфейсу, в обработчике щелчков пользовательского интерфейса, который вы делаете такжемного вещей одновременно.Разделите ваш потоковый код на другой метод, другой набор методов или на другой объект.Это облегчит чтение вашего кода, повысит вероятность повторного использования вашего кода и упростит редактирование вашего кода.
Логика и поток пользовательского интерфейса печально известны своей хладнокровностью итребует много обходных путей и специальной обработки.Это также область вашего приложения, о которой вы получите наибольшую обратную связь, поэтому она претерпит наибольшее количество изменений.У каждого будет свое мнение о том, как должен работать ваш пользовательский интерфейс, включая нетехнических пользователей.Если вы защититесь от этого, отделив свою логику пользовательского интерфейса от логики в остальной части вашего приложения, тогда эти изменения будут намного легче сделать.