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

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

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


person Daniel    schedule 10.09.2013    source источник
comment
Я не думаю, что спецификация еще доступна. Декомпиляция, вероятно, ваш лучший выбор.   -  person N_A    schedule 11.09.2013


Ответы (1)


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

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

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

введите здесь описание изображения

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

введите здесь описание изображения

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

person Tomas Petricek    schedule 11.09.2013