Dan*_*iel 5 f# discriminated-union f#-3.1
首先,F#3.1规格是否可在线获取?如果是这样,那么答案应该很容易找到.
我不知道是否与识别联合的编译形式命名字段(在3.1加)将包括与字段的名称属性,而不是通常的Item1,Item2...性质.
据我所知,规范还没有出来,所以唯一的判断方法就是尝试一下。我安装了 VS 2013 RC,所以我想我可以使用这个联合进行检查:
type Expression =
| Add of Left:Expression * Right:Expression
| Constant of number:int
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,它确实生成了命名属性,这些属性可以很好地在 C# 中使用:

事实上,它也在构造函数的参数中使用了该名称:

如果您将它们用于 C# 互操作性,那么您可能需要在 中写入联合成员名称PascalCase,因为如果您使用小写名称,编译器不会自动将属性名称大写(但有趣的是,它确实使用小写字母)参数的名称)。