¿Es una buena práctica llamar a un método que devuelve valores verdaderos o falsos en una declaración if?
Algo como esto:
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;
}
o es mejor almacenarlos en una variable y luego compararlos con valores if if this como este
bool validate = ValidateCredentials(txtUser.Text, txtPassword.Text);
if(validate == false){
//Do something
}
No solo me refiero a .NET, me refiero a la pregunta en todos los lenguajes de programación, simplemente sucede que utilicé .NET como ejemplo
IsValidCredentials, aunque gramaticalmente incómodo, es un formato común para indicar un valor de retorno booleano.
!es el operador "NO", niega cualquier expresión booleana. Así if (!validate)es lo contrario de if (validate). La declaración if se ingresará si validateno es verdadera.
if (!validate)lugar deif (validate == false).