为什么Deedle中的Frame.X静态方法在VS 2017中会生成警告?

9

昨天我下载了新的VS 2017,它工作得很好,除了每次调用Deedle包中的静态方法Frame.ReadCsv时,每一行都会出现这个警告:

FS10001 This method is not intended for use from F#

调用其他静态方法Frame.X不会生成相同的警告。

例如,这行代码会生成警告:

let msft =
    Frame.ReadCsv(Config.tsDir + "MSFT.csv",
                  hasHeaders=true,
                  inferTypes=true)

Intellisense 可以识别方法并提供相应的提示,这些提示与 http://bluemountaincapital.github.io/Deedle/reference/deedle-frame.html 中的签名完全匹配。


这是一个奇怪的错误。我测试过了,使用 FSharp.Core 4.4.1.0 和 Deedle.1.2.5,在 .NET 4.6.2 上运行(虽然我怀疑这并不重要)。我没有收到任何智能感知错误或警告。可执行文件和 FSI 都可以正常工作。 - s952163
1
它来自于ReadCsvthis attribute,但我不知道为什么。因为isHidden是true,所以它不应该出现(我想)。 - s952163
1
不仅仅是Visual Studio - 在F# 4.1上也可以使用mono。 - Gastove
2个回答

2
这段代码可以正常工作:
open Deedle
open System.IO

[<EntryPoint>]
let main argv =
    let csv = @"C:\tmp\testDeedle.csv"
    File.Exists csv |> printfn "%A"
    let df = Frame.ReadCsv(csv,hasHeaders=true,inferTypes=true)
    df.GetColumn("Date") |> printfn "%A"
    printfn "%A" argv
    0 // return an integer exit code

1
你能解释一下为什么这个方法没有引发警告信息吗? - Matthew Crews

1
似乎你需要使用ReadCsv(path =“file.csv”)而不是ReadCsv(location =“file.csv”)。第一种情况为您提供了一个界面,其中包含可选设置的选项值,而不是可空值,并且可以处理正确的重载。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接