为什么字符串在 MessageBox 中有效,但在 if 语句中无效

Why is a string working in MessageBox but not in the if statement

            WebClient wc = new WebClient();
            string code = wc.DownloadString("link");
            MessageBox.Show(code); // CODE SHOWS IN MESSAGEBOX CORRECTLY.
            if (textbox.Text == code)
            {
                MessageBox.Show("Key Approved!");
                try
                {
                    Form1 Form1 = new Form1();
                    Form1.Show();
                    this.Hide();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                MessageBox.Show("This Key is incorrect.");
            }

文本框中的文本是代码字符串中的文本,尽管 textbox.Text == code 是假的并且它 returns 到 else 参数。

知道为什么会这样吗?

Text inside the Textbox is the Text in the code string, although textbox.Text == code is false and it returns to the else argument.

我不相信你。既然你没有拿出证据证明这一点,我相信你错了。

这表明 TextBox.Textcode 不同。如果它们看起来相同,那么区别可能是额外的空格、大写与小写或其他细微差别。

唯一可以想象的其他原因是您以某种方式覆盖了字符串相等运算符以执行意外操作。

试试这个代码:

Test(TextBox.Text, code);

void Test(string textbox, string code)
{
    if (textbox.Length != code.Length)
    {
        MessageBox.Show("Strings are different lengths!");
        return;
    }

    for (int i = 0; i < textbox.Length; i++)
    {
        if (textbox[i] != code[i])
        {
            MessageBox.Show(string.Format("'{0}' does not equal '{1}'", textbox[i], code[i]));
            return;
        }
    }
    MessageBox.Show("Strings are identical!");
}

为什么在比较字符串

时不使用 .equals() 而不是 ==