5
myList |> List.filter (fun item ->
    if item.MyValue < 10 then
        sideEffect ()
        true
    else
        false )

如果我在 处设置断点false ),它将被忽略/跳过。

我必须:

        false
)

我不太想知道为什么会发生这种情况(很容易做出有根据的猜测),而是想知道这是否会得到解决。

4

1 回答 1

6

它在 VS2012 中没有修复,所以谁知道(未来太远无法预测更多)。我们的调试器支持在 VS2010 中“足够好”,因此我们选择在这个周期中不投入太多;客户很少提到调试器*(也许是因为人们发现他们很少需要调试 F# 代码?),所以我们没有优先考虑它。

(* - 有一个例外;人们真的希望在调试管道或大型表达式时看到中间值/返回值 - 这个请求对于 C# 和 F# 用户来说都很常见(尽管对 F# 可能更重要)。事实上,我只是看起来,这是迄今为止对 VS 调试器的最高投票用户请求:

http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2206747-function-return-value-in-debugger

所以去那里添加你的声音。)

通常情况下,所有这些小的调试器问题都可以通过将代码分散到更多行或引入更多中间变量来解决;仅仅为了使其更易于调试而更改代码是很烦人的,但是对于真正需要它的任何人来说,值得一提的是解决方法。

于 2012-06-27T05:19:15.887 回答