我想在一个“If”中使用一个包含两个“textboxes.Text”的命令。我的意思是当我执行此命令时:
If (textBox1.Text == ("admin")) + (textBox2.Text == ("admin))
或此If (textBox1.Text == ("admin) , textBox2.Text == admin))
这不对。
主要代码是:
private void Label_Click(object sender, EventArgs e)
{
if (textBox2.Text == ("admin")) + (textBox1.Text == ("admin"))
{
Label.Text = "right";
}
else
{
Label.Text = "wrong";
errorProvider1.SetError(errorprovider, "Wrong Username or Password");
}
即我想做的事情是,如果两个文本框中的一个出错,标签会显示密码或用户名是错误的......有什么想法吗?
答案 0 :(得分:5)
if
语句的语法是:
if (condition) body
您当前的代码是:
if (textBox2.Text == ("admin")) + (textBox1.Text == ("admin"))
...将textBox2.Text == ("admin")
视为条件,然后尝试使用+ (textBox1.Text == ("admin"))
作为正文,这是无效的。问题是:
此外,您将括号括在字符串文字周围没有明显的原因,降低了可读性。所以你真正想要的是:
if (textBox2.Text == "admin" && textBox1.Text == "admin")
请注意,其他答案建议使用||
而不是&&
- 这将是一个OR条件,如果 ,则会显示“正确”的结果文本框的值为admin
。我怀疑那不是你想要的。
答案 1 :(得分:1)
if (textBox1.Text == "admin" && textBox2.Text == "admin")
Label.Text = "right";
else
Label.Text = "wrong";
&&
是布尔AND运算符。 ||
是布尔OR运算符。
答案 2 :(得分:1)
检查C# Operators上的MSDN页面。
您正在寻找||
(有条件或)或&&
(有条件的)。
条件运算符的另一个名称是"短路",因为它们只在需要时才评估第二个条件。换句话说,对于a && b
,当a
为false时,整个表达式必须为false,因此不计算表达式b。当b
有副作用时,或a
暗示评估b
是否安全时,这一点很重要。例子:
if (MethodA() && MethodB()) //...
此处,仅当MethodA返回true时才调用MethodB。
if (o != null && o.Equals(p)) //...
这是安全的(并且很常见),因为当o为null时,它将我们从NullReferenceException
中拯救出来。
您也可以将这些运算符(|
和&
)的非短路版本与布尔表达式一起使用,但这种情况非常罕见,以至于大多数程序员都会读取它,乍一看,作为一个错误;如果您希望代码始终评估两个表达式,那么更明确一点。
答案 3 :(得分:0)
if(textBox2.Text == "admin" && textBox1.Text == "admin")
{
//both admin
}
答案 4 :(得分:0)
好像你需要一个简单的或?使用双垂直管道||
private void Label_Click(object sender, EventArgs e)
{
if (textBox2.Text == ("admin") || textBox1.Text == ("admin"))
{
Label.Text = "right";
}
else
{
Label.Text = "wrong";
errorProvider1.SetError(errorprovider, "Wrong Username or Password");
}
}
答案 5 :(得分:0)
private void Label_Click(object sender, EventArgs e)
{
if ((textBox2.Text == "admin") || (textBox1.Text == "admin"))
{
Label.Text = "right";
}
else
{
Label.Text = "wrong";
errorProvider1.SetError(errorprovider, "Wrong Username or Password");
}
}
答案 6 :(得分:0)
您需要使用“和”运算符“&&”在C#。
if (textBox1.Text == ("admin")) && (textBox2.Text == ("admin))
答案 7 :(得分:0)
你的表情不正确。正确的语法是
if (A && B) { ... }
所以在你的情况下它应该是
if(textBox1.Text.Equals("admin") && textBox2.Text.Equals("admin")) { ... }
如果这个逻辑让你困惑,你可能想读一下布尔代数。
请注意我们也建议的其他更改 - 您有额外的括号,并且应该使用Equals()
进行字符串比较。