Чи є гарною практикою викликати метод, який повертає істинні чи помилкові значення у операторі 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).