Czy dobrą praktyką jest wywoływanie metody, która zwraca wartości prawda lub fałsz w instrukcji if?
Coś takiego:
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;
}
czy lepiej jest przechowywać je w zmiennej, a następnie porównywać je, używając innych wartości jak to
bool validate = ValidateCredentials(txtUser.Text, txtPassword.Text);
if(validate == false){
//Do something
}
Mam nie tylko na myśli .NET, mam na myśli pytanie we wszystkich językach programowania, tak się składa, że użyłem .NET jako przykładu
IsValidCredentials, chociaż gramatycznie niewygodny, jest powszechnym formatem do wskazywania logicznej wartości zwracanej.
!jest operatorem „NIE”, neguje każde wyrażenie logiczne. Podobnie if (!validate)jest z odwrotnością if (validate). Instrukcja if zostanie wprowadzona, jeśli validatenie jest prawdziwa.
if (!validate)zamiastif (validate == false).