Đó có phải là một cách thực hành tốt để gọi một phương thức trả về giá trị đúng hay sai trong câu lệnh if?
Một cái gì đó như thế này:
private void VerifyAccount()
{
if (!ValidateCredentials(txtUser.Text, txtPassword.Text))
{
MessageBox.Show("Invalid user name or password");
}
}
private bool ValidateCredentials(string userName, string password)
{
string existingPassword = GetUserPassword(userName);
if (existingPassword == null)
return false;
var hasher = new Hasher { SaltSize = 16 };
bool passwordsMatch = hasher.CompareStringToHash(password, existingPassword);
return passwordsMatch;
}
hoặc tốt hơn là lưu trữ chúng trong một biến sau đó so sánh chúng bằng cách sử dụng các giá trị khác như thế này
bool validate = ValidateCredentials(txtUser.Text, txtPassword.Text);
if(validate == false){
//Do something
}
Tôi không chỉ đề cập đến .NET, tôi đang đề cập đến câu hỏi trong tất cả các ngôn ngữ lập trình, nó chỉ xảy ra rằng tôi đã sử dụng .NET làm ví dụ
IsValidCredentials
, mặc dù lúng túng về mặt ngữ pháp, là một định dạng phổ biến để chỉ ra giá trị trả về boolean.
!
là toán tử "KHÔNG", nó phủ nhận bất kỳ biểu thức boolean nào. Như vậy if (!validate)
là ngược lại if (validate)
. Câu lệnh if sẽ được nhập nếu validate
không đúng.
if (!validate)
chứ không phảiif (validate == false)
.