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 validate
nie jest prawdziwa.
if (!validate)
zamiastif (validate == false)
.