v3.1中编译的联合字段的编译形式

时间:2013-09-10 15:46:34

标签: f# discriminated-union f#-3.1

首先,F#3.1规格是否可在线获取?如果是这样,那么答案应该很容易找到。

我想知道带有named fields(3.1中添加)的受歧视联盟的编译形式是否会包含带有字段名称的属性,而不是通常的Item1Item2 ,...属性。

1 个答案:

答案 0 :(得分:3)

据我所知,该规范尚未公布,因此唯一可以尝试的方法是尝试。 我安装了VS 2013 RC,所以我想我可以使用这个联合检查:

type Expression = 
  | Add of Left:Expression * Right:Expression
  | Constant of number:int

正如预期的那样,它确实生成了命名属性,这些属性可以很好地用于C#:

enter image description here

实际上,它还在构造函数的参数中使用了名称:

enter image description here

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