调用在if语句中返回true或false值的方法是一种好习惯吗?
像这样:
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;
}
还是将它们存储在变量中,然后使用if这样的其他值比较它们是否更好?
bool validate = ValidateCredentials(txtUser.Text, txtPassword.Text);
if(validate == false){
//Do something
}
我不仅指.NET,还指所有编程语言中的问题,恰巧我以.NET为例。
IsValidCredentials
尽管语法上很笨拙,但它是一种用于表示布尔返回值的通用格式。
!
是“ NOT”运算符,它会否定任何布尔表达式。所以if (!validate)
是相反的if (validate)
。如果validate
不正确,将输入if语句。
if (!validate)
而不是if (validate == false)
。