¿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 validate
no es verdadera.
if (!validate)
lugar deif (validate == false)
.