我從一個解決方案中得到了這段代碼,我在谷歌上搜索了一個關于意大利面條if..else陳述句的問題。有沒有辦法完全縮短這個時間,或者有一種不同的方法至少使代碼更易于維護。
switch (registerControl.Valid_FullName(student.Student_Name) == true)
{
case true:
lblFullNameError.Visibility = Visibility.Hidden;
break;
case false:
lblFullNameError.Visibility = Visibility.Visible;
break;
}
switch (registerControl.Valid_Email(student.Student_Email) == true)
{
case true:
lblEmailError.Visibility = Visibility.Hidden;
break;
case false:
lblEmailError.Visibility = Visibility.Visible;
break;
}
switch (registerControl.Valid_Course(student.Student_Course) == true)
{
case true:
lblCourseError.Visibility = Visibility.Hidden;
break;
case false:
lblCourseError.Visibility = Visibility.Visible;
break;
}
switch (registerControl.Valid_Password(student.Student_Password) == true)
{
case true:
lblPasswordError.Visibility = Visibility.Hidden;
break;
case false:
lblPasswordError.Visibility = Visibility.Visible;
break;
}
switch (registerControl.Confirm_Password(student.Student_Password, student.student_ConfirmPassword) == true)
{
case true:
lblPasswordMatch.Visibility = Visibility.Hidden;
break;
case false:
lblPasswordMatch.Visibility = Visibility.Visible;
break;
}
uj5u.com熱心網友回復:
您可以將switch陳述句轉換為單行陳述句,使用ternary operator,
lblFullNameError.Visibility = registerControl.Valid_FullName(student.Student_Name)
? Visibility.Hidden : Visibility.Visible;
您可以對其余的開關塊應用相同的邏輯。
uj5u.com熱心網友回復:
除了用switch三元運算子替換陳述句(如Prasad的回答所示),您還可以將邏輯封裝到方法中:
void ToggleError(bool isDataValid, Label errorLabel)
{
errorLabel.Visibility = isDataValid ? Visibility.Hidden : Visibility.Visible;
}
并按如下方式使用它:
ToggleError(registerControl.Valid_FullName(student.Student_Name), lblFullNameError);
ToggleError(registerControl.Valid_Email(student.Student_Email), lblEmailError);
...
這樣,您就不必重復Visibility.Hidden,并Visibility.Visible在每一行。它也更易于維護:如果您想更改顯示錯誤訊息的方式,您只需要修改一個方法。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/380862.html
