【问题标题】:Cannot Implicitly Convert type 'string' to 'bool' textbox1无法将类型“字符串”隐式转换为“布尔”文本框1
【发布时间】:2018-06-17 15:39:24
【问题描述】:

我的 C# 代码需要帮助。我正在尝试到达按钮调用Textbox1 的位置。如果textBox1 等于“密码”,则转到下一个表单:Admin...

如果textBox1 不等于“密码”,则显示消息并关闭程序...

这是我的代码的 sn-p:

private void xButton6_Click(object sender, EventArgs e)
    {
        if (textBox1.Text = "Password")
        {
            Helpers.ShowAdmin(this);

        }

        else
        {
            MessageBox.Show("Access Denied" , "Alert");
            Application.Exit();
        }
    }

我做错了什么?

【问题讨论】:

  • C# 中的等号是 2 个等号而不是 1。使用 == 像 textBox1.Text == "Password"
  • 解释错误信息本身:var a = textBox1.Text = "Password" 将设置a 为“密码”,而var a = textBox1.Text == "Password" 将设置a 为真/假。 if 需要一个布尔值(真/假),但目前它正在获取一个字符串(“密码”)。

标签: c#


【解决方案1】:

你需要使用双等号

if (textBox1.Text == "Password")

== Operator (C# Reference)

对于预定义的值类型,相等运算符 (==) 在以下情况下返回 true 其操作数的值相等,否则为假。以供参考 字符串以外的类型,如果其两个操作数引用 ==,则返回 true 同一个对象。对于字符串类型,== 比较 字符串。

【讨论】:

    【解决方案2】:

    是的,问题是你需要两个等号== 来表示相等;但是,只是想补充一点,您也可以使用 textBox1.Text.Equals("Password") 产生相同的结果。

    【讨论】:

      【解决方案3】:

      在 Line if (textBox1.Text = "Password") 中使用 == 而不是 =

      应该是这样的

      if (textBox1.Text == "Password")
      

      '=' 用于给变量赋值,而'==' 用于 比较

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-03
        • 1970-01-01
        • 2014-05-11
        • 2011-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多