以下代码未按预期格式化字符串(仅打印完全限定类名):
module internal MyModule.Types
type Action =
| Add of int
| Update of int * string
| Delete of string
module internal MyModule.Print
open MyModule.Types
let printStuff (x:Action) =
printfn "%A" x
然而,如果未将MyModule.Types
指定为internal
,格式化工作按预期进行。为什么使用internal
模块时格式化不起作用?这是否与反射有关?除了将模块公开之外,是否有解决方法?
我应该提到这些模块位于单独的.fs文件中。
printfn
在设置内部修饰符时使用的是"%O"
而不是"%A"
。我不太确定为什么会这样。 - s952163