5

首先,F# 3.1 规范是否可以在线获得?如果是这样,这个问题的答案应该很容易找到。

我想知道带有命名字段的可区分联合的编译形式(在 3.1 中添加)是否将包含带有字段名称的属性,而不是通常的Item1, Item2, ... 属性。

4

1 回答 1

3

据我所知,该规范尚不可用,因此唯一的判断方法就是尝试一下。我安装了 VS 2013 RC,所以我想我可以使用这个联合进行检查:

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

正如预期的那样,它确实生成了命名属性,这些属性在 C# 中非常有用:

在此处输入图像描述

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

在此处输入图像描述

PascalCase如果您将它们用于 C# 互操作性,那么您可能需要将联合成员名称写入参数名称)。

于 2013-09-11T19:32:04.433 回答