这主要是在尝试调试Visual Studio调试器中的F#代码时出现的,它需要C#语法:
调试器无法识别F#表达式。要在F#调试期间在调试器窗口或对话框中输入表达式,必须将表达式转换为C#语法。将F#表达式转换为C#时,请确保记住C#使用==作为比较运算符以获得相等性,并且F#使用单个=。
(来自http://msdn.microsoft.com/en-us/library/vstudio/ee843932.aspx)
问题是我的变量和函数包含单引号字符,如path'
,但单引号似乎在C#中的名称中无效,因此在调试器窗口中输入path'
只是说Newline expected in constant
或者说是这样的话,因为它认为我正在开始一个字符文字。即使右键单击它并通过上下文菜单添加手表也会产生类似的错误。
如何将包含单引号的F#名称转换为C#语法,以便我可以从调试器中检查它们或从C#代码中引用它们?
答案 0 :(得分:3)
我认为没有办法做到这一点 - 所以最好的选择可能是将变量path'
重命名为一个有效的C#标识符,如pathAux
。
尽管F#在命名方面更灵活(并允许path'
甚至``whatever !``
之类的东西),但在大多数情况下使用C#兼容的标识符名称可能是个好主意,因为它会使代码对更广泛的受众可读 - 例如C#开发人员。