C#为什么两字符串明明相等却返回false?

问题描述:两个字符串做比较,其中path0是直接赋值,path是从app.config文件中读取到的值,两个值在监视时发现时一模一样的字符串,但是比较相等的结果却是false。

app.config配置如下:

比较代码如下:

底部为监视结果。百思不得其解的是path==path0的结果为false。

解决方案:一开始我都优点怀疑人生,不过冷静下来也慢慢想到了解决办法。

(1)首先,我获取了path和path0的代码,发现path的长度为37,而path0的长度为36,这就可以说的通了。

(2)然后,我将path和path0分别转换为char数组进行比较,发现path比path0多了一个字符,在第一位上,ASCII码值位8234,但是显示结果为''。于是我查询了该字符,为:

这个特殊字符在编辑器中无法显示,所以为'',于是我们就看到两个一摸一样的字符串竟然不相等了。

(3)删除了app.config中的值的首字母,并重新输入,最后,一切正常了。

—— 完 ——
相关推荐
评论

立 为 非 似

中 谁 昨 此

宵 风 夜 星

。 露 , 辰

文章点击榜

细 无 轻 自

如 边 似 在

愁 丝 梦 飞

。 雨 , 花