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

时间:2012-10-01 16:25:42

标签: 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");
         }

即我想做的事情是,如果两个文本框中的一个出错,标签会显示密码或用户名是错误的......有什么想法吗?

8 个答案:

答案 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()进行字符串比较。