Скомпилированная форма именованных полей объединения в v3.1

Во-первых, доступна ли спецификация F# 3.1 онлайн? Если так, то ответ на этот вопрос должен быть достаточно легким для поиска.

Мне интересно, будет ли скомпилированная форма различаемых объединений с именованными полями (добавлена ​​в 3.1) включать свойства с именами полей вместо обычной Item1, Item2... свойства.

1 ответ

Решение

Насколько я знаю, спецификация еще не доступна, поэтому единственный способ узнать это - попробовать. Я установил VS 2013 RC, поэтому я подумал, что могу проверить с помощью этого объединения:

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

Как и ожидалось, он генерирует именованные свойства, которые приятно использовать из C#:

Фактически, он также использует имя в параметрах функций построения:

Если вы используете их для совместимости с C#, то вы, вероятно, захотите написать имена членов объединения в PascalCaseпотому что компилятор не использует заглавные буквы в имени свойства автоматически, если вы используете строчные буквы (но, что интересно, он использует строчные буквы для параметров).

Другие вопросы по тегам