¿Sintaxis de acceso directo de F#para las propiedades?
(3)
Para la sintaxis normal getter / setter propiedad
let mutable myInternalValue
member this.MyProperty
with get() = myInternalValue
and set(value) = myInternalValue <- value
¿hay un atajo, similar al siguiente en C #?
someType MyProperty { get; set; }
Si hay uno, parece que soy incapaz de encontrarlo ...
¿hay un atajo, similar al siguiente en C #?
No lo creo (no se muestra nada en el resumen de la sintaxis de "Expert F #"), y la sintaxis de F # ya es bastante breve en comparación con la sintaxis completa que se necesita en C #.
F # 3 tiene propiedades implementadas automáticamente para que pueda declarar propiedades sin declarar el campo de respaldo.
Ejemplo tomado de Properties(F#) en MSDN:
type MyClass() =
member val MyProperty = "" with get, set
No hay un atajo para crear la propiedad get
/ set
en F #, pero si quiere una propiedad con solo get
, puede usar la siguiente sintaxis simple:
type Test(n) =
let myValue = n * 2
member x.Property =
// Evaluated each time you access property value
myValue + 5
Dado que F # es un lenguaje funcional, los tipos F # son a menudo inmutables. Esta sintaxis hace que sea muy fácil definir tipos inmutables, por lo que también lo alienta a usar un buen estilo de programación funcional en F #.
Sin embargo, estoy de acuerdo en que un acceso directo para get
/ set
propiedades sería muy útil, especialmente cuando se escribe algún código que necesita interoperar con C # / otras bibliotecas .NET.
EDITAR (5 años después ...): Esto se agregó en F # 3.0, como muestra la respuesta de Ben :-)