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 validate
nicht wahr ist.
if (!validate)
stattif (validate == false)
.