对于普通属性getter/setter语法
let mutable myInternalValue
member this.MyProperty
with get() = myInternalValue
and set(value) = myInternalValue <- value
Run Code Online (Sandbox Code Playgroud)
是否有一个快捷方式,类似于C#中的以下内容?
someType MyProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)
如果有的话,我似乎无法找到它......
ben*_*ruk 53
F#3具有自动实现的属性,因此您可以在不声明支持字段的情况下声明属性.
从MSDN上的属性(F#)获取的示例:
type MyClass() =
member val MyProperty = "" with get, set
Run Code Online (Sandbox Code Playgroud)
Tom*_*cek 11
在F#中没有创建get/ set属性的快捷方式,但如果您只想要一个属性,get可以使用以下简单语法:
type Test(n) =
let myValue = n * 2
member x.Property =
// Evaluated each time you access property value
myValue + 5
Run Code Online (Sandbox Code Playgroud)
由于F#是一种函数式语言,因此F#类型通常是不可变的.这种语法使得定义不可变类型变得非常容易,因此它也鼓励您在F#中使用良好的函数式编程风格.
但是,我同意get/ setproperty 的快捷方式非常有用,特别是在编写需要与C#/其他.NET库进行互操作的代码时.
编辑(5年后......):这已经在F#3.0中添加了,因为Ben的答案显示:-)