ToArray 和 ToString 返回 (unit -> string),而不是字符串。我应该怎么办?

Jam*_*he1 0 string f#

笔记

我目前遇到的问题是,函数“ToString”返回 (unit -> string) 类型而不是字符串,而“ToArray”返回 (unit -> string[]) 而不是 string[]。尝试向上转换为 string[] 或 string 没有成功。

这是代码:

let readZip filepath = ZipFile.OpenRead filepath
let replaceEnvs str = Environment.ExpandEnvironmentVariables str

let listFiles rawDir =
    replaceEnvs rawDir
    |> Directory.EnumerateFiles

let readModMetadata filepath =
    let archive = readZip filepath
    (archive.GetEntry "mcmod.info").ToString    // Also becomes (unit -> string) and not string

[<EntryPoint>]
let main args =
    let mods = listFiles modsFolder
    let modAsArray = mods.ToArray   // Becomes (unit -> string[]) and not string[]?
    0
Run Code Online (Sandbox Code Playgroud)

为什么会这样,有没有办法只获取字符串?

Jam*_*he1 5

所以我发现了。

您需要指定函数中不包含任何参数。中的括号ToString()就是这样做的,因为它们区分返回函数和返回结果。我需要更多咖啡。