F# ToString() %A 格式不适用于单声道的 linux

F# ToString() %A formatting doesnt work on linux with mono

我使用随单声道一起安装的 fsharpc 编译器。 我想为我的某些类型覆盖 ToString() 方法。 问题是所有编译都很好,但 printf "%A" 只是给我默认的调试输出。所以为了绝对确定我没有遗漏任何东西,我在 try.fsharp.org 上写了一个简单的测试并自己编译了相同的代码。仍然只是获取默认格式

那么 .net 框架中是否缺少某些东西?

为确保 printf 调用 ToString(),请使用 %O 格式而不是 %A:

type MyType =
    {
        MyValue : string
    }
    override __.ToString() = "Hello!"

[<EntryPoint>]
let main argv =  
    let record = { MyValue = "A value" }
    printfn "%A" record   // { MyValue = "A value" }
    printfn "%O" record   // Hello!
    0

详情见this link