C#/.NET/GUI 编程相对较新,但在这里。现在我正在使用 WinForms 在工作中编写一个业务应用程序。我有大约 5 个文本框和 1 个组合框,我想验证它们是否为空,如果是,则告诉用户并将焦点放在该控件上。我该怎么做呢?
我可以有一个 if 语句来检查每个控件:
if (usernameField IsNullOrEmpty) then:
setFocus(UsernameField);
return;
if (addressField IsNullOrEmpty) then:
setFocus(addressField);
return;
continue with rest of application as normal...
或者我可以在例外情况下这样做:
try {
if (usernameField IsNullOrEmpty) then:
throw new Exception(usernameField);
if (addressField IsNullOrEmpty) then:
throw new Exception(addressField);
} catch (Exception e) {
setFocus(ControlField) // encapsulate in exception some way?
}
或者为了防止代码重复,只需要写一个函数:
try {
checkField(usernameField);
checkField(addressField);
} catch (Exception e) {
setFocus(ControlField) // encapsulate in exception some way?
}
void checkField(control ctrl) {
if (ctrl IsEmptyOrNull)
throw new Exception(ctrl);
}
对于 GUI 编程来说相对较新,文本字段为空是否应该例外,或者这是否会被视为正常的程序流程?