下面是if语句输入框到无效凭据,我试图创建一个异常方法,如果在文本框中没有检测到输入,将输出一个消息框
使用下面的代码,当没有输入任何内容时,它将输出消息“not authenticated”以及IsNullOrWhiteSpace的消息。我试图得到它,以便如果没有输入任何内容,将出现一个消息框,询问用户名和密码,但我不希望消息“未经过身份验证”,如果这有意义吗?
我如何在下面的代码中实现它?
public void button1_Click(object sender, EventArgs e)
{
var username = textBox2.Text;
var password = textBox1.Text;
bool isvalid = auth.ValidateCredentials(username, password);
{
if (isvalid == true)
{
MessageBox.Show("Authenticated!");
}
else
{
MessageBox.Show("Not Authenticated!");
}
if (isvalid = string.IsNullOrWhiteSpace(username))
{
MessageBox.Show("Username is empty, please enter a username!");
}
if (isvalid = string.IsNullOrWhiteSpace(password))
{
MessageBox.Show("Password is empty, please enter a password!");
}
}
}
答案 0 :(得分:1)
在尝试验证之前执行这些检查,如果其中任何一个为空,则退出该方法:
if (string.IsNullOrWhiteSpace(username))
{
MessageBox.Show("Username is empty, please enter a username!");
return;
}
if (string.IsNullOrWhiteSpace(password))
{
MessageBox.Show("Password is empty, please enter a password!");
return;
}
bool isvalid = auth.ValidateCredentials(username, password);
if (isvalid)
{
MessageBox.Show("Authenticated!");
}
else
{
MessageBox.Show("Not Authenticated!");
}
请注意,我已将isValid
语句中的作业删除至if
,因为这是不必要的。我还在{ }
分配后删除了bool isValid
。 { }
用于定义新范围,通常在if
或循环语句之后。他们在这里伤害任何事情,但也没有必要。
答案 1 :(得分:0)
在你的逻辑中我会使用抛出异常:
throw new System.ArgumentException("password cannot be null", "original");
哦,在你的if语句中,我们应该比较运算符==
而不是分配=