%A格式与非公共歧视联盟的奇怪行为

时间:2013-02-09 22:11:19

标签: f#

输出:

type Test =
  | First
  | Second
  | Third

let test = First

printf "test=%A" test

test=First

正如所料,但如果我声明类型internal

type internal Test =
  | First
  | Second
  | Third

let internal test = First

printf "test=%A" test

输出变为:

test=FSI_0019+Test

这是设计的吗?为什么?还是一个bug?

我正在使用带有F#2.0的Visual Studio 2010

1 个答案:

答案 0 :(得分:11)

要打印非公开成员,请使用“+”标志。它在MSDN中缺失的事实看起来像doc问题:

printf "test=%+A" test