在现在的Visual Studio 2012中,F#智能感应有时候在某些情况下不能工作。那么在何种情况下它会不工作呢?可以绕过去么?让我来告诉你详细情况吧。
请看如下代码:
open System.Collections.ObjectModel
module PortableLibrary1=
type Keys=
| One = 1
| Two = 2
| Three = 3
| Four = 4
| Five = 5
| Six = 6
| Seven = 7
| Eight = 8
| Nine = 9
| Zero = 0
type DataContext()=
let l= ObservableCollection<int>()
l.
//member this.List with get() = l
请看注释行之前的”l.”。如果那个成员没有被注释掉,”l.”可以显示智能感应,你可以看到”l”的成员。如果”l.”是最后一行,智能感应根本不工作。
另外,错误信息也没有用,见如下的截图:
这个问题的解决代价太大,因此微软决定不去修复。那么我们有什么绕过去的办法么?
答案是肯定的。这段代码语法是不正确的,因为”do”缺失了。加上”do”就可以工作了。