JMC*_*125 0 f# visual-studio-2012
前段时间我注意到VS2012 for Web中的"Watch"窗口不适用于FSharp中的默认功能.例如,cos someValue不起作用,也没有在函数的开头插入let _cos = cos或使用的解决方法.该错误类似于"当前上下文中不存在cos"或"_cos在当前范围内无效"等.let _cos x = cos x_cos(someValue)
我应该更改某些设置还是这是一个意外的错误?当然,我可以声明我需要观察的所有结果,但这有点开销,这是非常不切实际的.我该怎么做才能解决这个问题?
正如在参考答案中所提到的,手表和直接窗口仅支持C#,因此它们无法评估F#表达式,并且他们不了解F#上下文(例如打开的命名空间).
总之,将结果存储在局部变量(编译为普通局部变量)中是查看结果的最佳方法.
更多细节:
在某些情况下,您可以编写与您在F#中要执行的操作相对应的C#代码.这可能只适用于简单的情况,当相应的C#不是很难写,但通常可以这样做.例如,要调用cos 3.14,您需要编写如下内容:
Microsoft.FSharp.Core.Operators.Cos(3.14)
Run Code Online (Sandbox Code Playgroud)
如果您cos在F#源代码中找到该函数(它在这里,在prim-types.fsi中),那么您可以看到它带有CompiledName属性,告诉编译器将其编译为一个名为的方法Cos(遵循.NET命名准则) ).它在名为Operators(在此处查看)的模块中定义,它带有注释,AutoOpen因此您不需要显式写入openF#代码,但它实际上是编译代码时F#编译器生成的类的名称.
| 归档时间: |
|
| 查看次数: |
380 次 |
| 最近记录: |