我正在努力进行漂亮打印(%A)this DU。
本地instr
属于ILInstr
类型。
我原以为sprintf "%A" instr
会导致I_stloc 0us
,但正如您在本地窗口中看到的那样(请参阅instr_str_A
),它只显示了typename。
所有三种不同的格式字符串(%A,%O,.ToString())都会产生相同的输出。
我做错了什么?
然后我与a simpler DU进行了交互式尝试,但是有效:
> type Contact = Email of string | Phone of int
let email = Email "bob@example.com"
printfn "%A" email // nice
printfn "%O" email // ugly!
;;
Email "bob@example.com"
FSI_0002+Contact+Email
一些可能相关或不相关的事情: