เป็นวิธีปฏิบัติที่ดีในการเรียกใช้เมธอดที่ส่งคืนค่าจริงหรือเท็จในคำสั่ง if หรือไม่?
บางสิ่งเช่นนี้
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;
}
หรือจะเป็นการดีกว่าถ้าเก็บไว้ในตัวแปรแล้วเปรียบเทียบกับมันถ้าใช้ค่าอื่นเช่นนี้
bool validate = ValidateCredentials(txtUser.Text, txtPassword.Text);
if(validate == false){
//Do something
}
ฉันไม่เพียง แต่หมายถึง. NET ฉันหมายถึงคำถามในทุกภาษาการเขียนโปรแกรมมันเกิดขึ้นดังนั้นฉันจึงใช้. NET เป็นตัวอย่าง
IsValidCredentials
แม้ว่าไวยากรณ์ผิดปกติเป็นรูปแบบทั่วไปสำหรับการระบุค่าส่งคืนบูลีน
!
เป็นโอเปอเรเตอร์ "NOT" มันจะลบล้างนิพจน์บูลีนใด ๆ ดังนั้นเป็นสิ่งที่ตรงกันข้ามของif (!validate)
if (validate)
คำสั่ง if จะถูกป้อนหากvalidate
ไม่เป็นจริง
if (!validate)
if (validate == false)