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