È buona norma chiamare un metodo che restituisce valori veri o falsi in un'istruzione if?
Qualcosa come questo:
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 è meglio memorizzarli in una variabile e confrontarli usando if else valori come questo
bool validate = ValidateCredentials(txtUser.Text, txtPassword.Text);
if(validate == false){
//Do something
}
Non mi riferisco solo a .NET, mi riferisco alla domanda in tutti i linguaggi di programmazione, solo che succede che ho usato .NET come esempio
IsValidCredentials
, sebbene grammaticalmente imbarazzante, è un formato comune per indicare un valore di ritorno booleano.
!
è l'operatore "NOT", annulla qualsiasi espressione booleana. Quindi if (!validate)
è l'opposto di if (validate)
. L'istruzione if verrà inserita se validate
non è vera.
if (!validate)
anzichéif (validate == false)
.