我在VS2013上使用f# 3.1。下面的代码导致以下错误消息
"基于此程序点之前的信息查找不确定类型的对象。在此程序点之前可能需要类型注释来约束对象的类型。".
我不明白为什么会发生这种情况,因为这里使用的所有类型都是众所周知的(来自。net框架本身)。有人能给我点灯吗?
open System.IO
open System.Collections.Generic
type A() as me =
let drives = new List<DriveInfo>()
let x = me.SelectedDrive
let y = x.RootDirectory // this causes "Lookup on object of indeterminate type..."
member this.SelectedDrive with get() = drives.[0]
f#编译器按照从上到下的方向读取文件,因此当必须确定y
的类型时,编译器还不知道this.SelectedDrive
的类型。这就是为什么你会得到这个错误