Ist es eine gute Praxis, eine Methode aufzurufen, die in einer if-Anweisung wahre oder falsche Werte zurückgibt?
Etwas wie das:
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;
}
Oder ist es besser, sie in einer Variablen zu speichern, als sie mit solchen Werten zu vergleichen?
bool validate = ValidateCredentials(txtUser.Text, txtPassword.Text);
if(validate == false){
//Do something
}
Ich beziehe mich nicht nur auf .NET, ich beziehe mich auf die Frage in allen Programmiersprachen. Es kommt einfach so vor, dass ich .NET als Beispiel verwendet habe
IsValidCredentials, obwohl grammatikalisch umständlich, ist ein gängiges Format zur Angabe eines booleschen Rückgabewerts.
!ist der Operator "NOT" und negiert jeden booleschen Ausdruck. So if (!validate)ist das Gegenteil von if (validate). Die if-Anweisung wird eingegeben, wenn sie validatenicht wahr ist.
if (!validate)stattif (validate == false).