繁体   English   中英

如果在C#中为(textBox1.Text ==(“ admin”))+(textBox2.Text ==(“ admin))

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM