首先,F#3.1规格是否可在线获取?如果是这样,那么答案应该很容易找到。
我想知道带有named fields(3.1中添加)的受歧视联盟的编译形式是否会包含带有字段名称的属性,而不是通常的Item1
,Item2
,...属性。
答案 0 :(得分:3)
据我所知,该规范尚未公布,因此唯一可以尝试的方法是尝试。 我安装了VS 2013 RC,所以我想我可以使用这个联合检查:
type Expression =
| Add of Left:Expression * Right:Expression
| Constant of number:int
正如预期的那样,它确实生成了命名属性,这些属性可以很好地用于C#:
实际上,它还在构造函数的参数中使用了名称:
如果您将它们用于C#互操作性,那么您可能希望在PascalCase
中编写联合成员名称,因为如果您使用小写名称,编译器不会自动将该属性的名称大写(但有趣的是,它确实使用参数的小写名称。)