Ответ 1
F # 3 имеет автоматически реализованные свойства, чтобы вы могли объявлять свойства без объявления поля поддержки.
Пример из Свойства (F #) в MSDN:
type MyClass() =
member val MyProperty = "" with get, set
Для синтаксиса getter/setter нормального свойства
let mutable myInternalValue
member this.MyProperty
with get() = myInternalValue
and set(value) = myInternalValue <- value
есть ли ярлык, похожий на следующий в С#?
someType MyProperty { get; set; }
Если он есть, я, похоже, не могу его найти...
F # 3 имеет автоматически реализованные свойства, чтобы вы могли объявлять свойства без объявления поля поддержки.
Пример из Свойства (F #) в MSDN:
type MyClass() =
member val MyProperty = "" with get, set
Не существует ярлыка для создания свойства get
/set
в F #, но если вы хотите свойство с помощью всего лишь get
, вы можете использовать следующий простой синтаксис:
type Test(n) =
let myValue = n * 2
member x.Property =
// Evaluated each time you access property value
myValue + 5
Так как F # - функциональный язык, типы F # очень часто неизменяемы. Этот синтаксис упрощает определение неизменяемых типов, поэтому он также поощряет использование хорошего функционального стиля программирования в F #.
Однако я согласен, что ярлык для свойства get
/set
был бы очень полезен, особенно при написании кода, который должен взаимодействовать с С#/другими библиотеками .NET.
РЕДАКТИРОВАТЬ (5 лет спустя...): Это было добавлено в F # 3.0, так как ответ Бен показывает: -)
есть ли ярлык, похожий на следующий в С#?
Я так не думаю (ничего не показано в резюме синтаксиса "Expert F #" ), а синтаксис F # уже довольно краток по сравнению с полным синтаксисом, необходимым для С#.