为什么“a”=“a”返回False

时间:2013-06-28 03:15:38

标签: .net vb.net string

表达式"a"="a"返回False。到底是怎么回事?

Watch List

编辑:抱歉,我在VB.NET工作,而不是C#

更新:当我将表达式复制到Notepad ++时,它会显示"?a"="a"。它可以与编码有关吗?

1 个答案:

答案 0 :(得分:8)

该表达式不合法C#。

您没有收到错误,因为FuncEval(在监视或即时窗口中执行代码的能力)使用了具有各种问题的不同解析器。

最终可以通过将此解析器替换为Roslyn来解决这些问题。


修改

我怀疑FuncEval使用的VB.Net解析器不是实习字符串。

如果在FuncEval之外运行此表达式(例如,LINQPad),则返回true。


第二次编辑

第一个字符串中有一个不可打印的字符。

Notepad ++将其显示为?,因为您的文本文件使用的是不支持该字符的编码。
要了解其实际情况,请将其粘贴到this site