以两种不同的方式比较两个字符串

Jen*_*olt 1 c# string

我用C#编写了这个小程序

private void Form1_Load(object sender, EventArgs e)
{
    MessageBox.Show(("7797302D875A8922EBFC7DECBD352FE88F35642F" == "?7797302D875A8922EBFC7DECBD352FE88F35642F").ToString());

    var a = "7797302D875A8922EBFC7DECBD352FE88F35642F";
    var b = "7797302D875A8922EBFC7DECBD352FE88F35642F";
    MessageBox.Show((a == b).ToString());

}
Run Code Online (Sandbox Code Playgroud)

第一个messageBox显示"False",而Messagebox显示"True".

我的问题是:为什么我不能将这两个字符串与==运算符进行比较?

Son*_*nül 10

你的第二个字符串有不可见的从左到右的标记字符(U+200E).

看起来只是另一个复制粘贴问题.

在此输入图像描述

  • 值得注意的是,您实际上可以使用`==`运算符来表示字符串. (2认同)