Проверка ввода формы и запуск функции, только если она прошла - PullRequest
1 голос
/ 19 января 2010

В моем .NET-проекте мне нужно выполнить много проверок на 4/5 полях. Эта проверка проверяет, есть ли ошибки в некоторых полях, например: в поле name не должно быть чисел или символов. Если все эти проверки пройдены, мне нужно выполнить SQL-запрос, чтобы извлечь некоторые данные из базы данных.

Я мог бы иметь это с большим количеством вложенных IF, и запускать функцию в конце, как только она пройдет их все, но это приведет к примерно 12 вложенным IF, и это кажется действительно громоздким способом сделать это. Я также думал об установке логического значения после каждой проверки, и если значение 1, тогда не запускайте функцию, иначе сделайте. Но, конечно, это перезаписывается другими проходящими проверками.

Может ли кто-нибудь дать некоторое представление? Спасибо.

Ответы [ 2 ]

1 голос
/ 19 января 2010

Это может потребовать досрочного выхода, то есть возврата, как только проверка завершится неудачей:

If Not IsValidNameField(name) Then Return
If Not IsValidDateFiled(date) Then Return
…

Если вы видите, что делаете это во многих местах, подумайте, может ли быть более ранняя точка, в которойпроверяйте поля, т. е. возможно, предоставляя проверку в соответствующих установщиках свойств, а затем всегда манипулируя значениями полей через свойства, а не напрямую.

Этот может поначалу работать с больше, но может сохранитьмного работы в долгосрочной перспективе.Как правило, не допускайте, чтобы поля когда-либо содержали недопустимые значения.Это намного чище и проще в обслуживании и отладке.

0 голосов
/ 19 января 2010

Вы находитесь на правильных строках с вашим представлением о булевой переменной; по умолчанию он равен True, затем проходит каждую проверку проверки отдельно и позволяет каждому установить его в False, если проверка не удалась. Затем, если оно все еще равно True, вы можете продолжить выполнение SQL-запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...