Если вы подписываетесь на событие автоматически, я не думаю, что особенно плохо иметь метод с сигнатурой обработчика событий, который просто делегирует методу, который имеет "настоящую" сигнатуру, которая вам нужна (в данном случае,без параметров).
Если вы подписываетесь вручную, вы можете использовать вместо этого лямбда-выражение:
postUpdateButton.Click += (sender, args) => PostUpdate();
, а затем выполнить работу в PostUpdate
.Разделили ли вы затем PostUpdate
на два метода: один для взаимодействия с пользовательским интерфейсом, а второй для взаимодействия с BLL - решать только вам.В этом случае я не думаю, что это имеет большое значение.
Как вы структурируете логику пользовательского интерфейса, чтобы сделать ее тестируемой, это совсем другой вопрос.Недавно я стал поклонником шаблона MVVM, но я не знаю, насколько это применимо к вашему конкретному сценарию (он действительно разработан на основе Silverlight и WPF).
Несколько других комментариев:
- Обычно параметры должны быть в CamelCased, а не в PascalCased
- Вы действительно уверены, что получаете выгоду от префикса локальных переменных с
l_
?Разве не очевидно, что они местные?Лично я не заинтересован в большинстве имен переменных, показанных здесь - рассмотрите возможность именования переменных после их , означающего , а не их type . - Использование
DataTable
длявозвращаемая информация является несколько подверженным ошибкам способом ведения дел.Почему BLL не может вернуть int?
, чтобы указать значение (или отсутствие значения)?