Чи є гарною практикою викликати метод, який повертає істинні чи помилкові значення у операторі if?
Щось на зразок цього:
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;
}
або краще зберігати їх у змінній, а потім порівнювати їх за допомогою інших значень, таких як ця
bool validate = ValidateCredentials(txtUser.Text, txtPassword.Text);
if(validate == false){
//Do something
}
Я маю на увазі не тільки .NET, я посилаюся на питання на всіх мовах програмування. Так буває, що я використовував .NET як приклад
IsValidCredentials
, хоча граматично незручно, є загальним форматом для вказівки булевого повернення значення.
!
є оператором "НЕ", він заперечує будь-яке булеве вираження. Так if (!validate)
є навпаки if (validate)
. Заява if буде введено, якщо validate
це неправда.
if (!validate)
а неif (validate == false)
.