Является ли хорошей практикой вызывать метод, который возвращает значения true или false в операторе 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;
}
или лучше сохранить их в переменной, а затем сравнить их, используя значения if else, как это
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)
.