[英]If (textBox1.Text == (“admin”)) + (textBox2.Text == ("admin)) in C#
我想使用一个命令,该命令将在一个“ 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");
}
也就是说,我想做的事情是,如果两个文本框之一错误,则标签将显示密码或用户名错误……有什么想法吗?
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
则结果将显示为“ Right”。 我怀疑那不是您想要的。
if (textBox1.Text == "admin" && textBox2.Text == "admin")
Label.Text = "right";
else
Label.Text = "wrong";
&&
是布尔AND运算符。 ||
是布尔OR运算符。
检查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
省下来。
您也可以将这些运算符的非短路版本( |
和&
)与布尔表达式一起使用,但是这种情况很少见,大多数程序员乍一看都会把它看成一个错误。 如果您希望代码始终对两个表达式求值,则最好更加明确。
if(textBox2.Text == "admin" && textBox1.Text == "admin")
{
//both 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");
}
}
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");
}
}
您需要使用在C#中为“ &&”的“和”运算符。
if (textBox1.Text == ("admin")) && (textBox2.Text == ("admin))
您的表达不正确。 正确的语法是
if (A && B) { ... }
所以你的情况应该是
if(textBox1.Text.Equals("admin") && textBox2.Text.Equals("admin")) { ... }
如果此逻辑使您感到困惑,则可能需要阅读一些布尔代数。
请注意我们也建议的其他更改-您有多余的括号,并且也应该使用Equals()
进行字符串比较。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.