0

表达式"a"="a"返回False。到底他妈发生了什么?

观察名单

编辑:对不起,我在 VB.NET 中工作,而不是 C#

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

4

1 回答 1

8

该表达式不是合法的 C#。

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

这些问题最终可能会通过用 Roslyn 替换这个解析器来解决。


编辑

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

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


第二次编辑

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

Notepad++ 将其显示为 a 是?因为您的文本文件使用的编码不支持该字符。
要找出它实际上是什么,请将其粘贴到此站点

于 2013-06-28T03:17:36.553 回答