代码之家  ›  专栏  ›  技术社区  ›  Alexander Rautenberg

属性的快捷方式语法?

f#
  •  26
  • Alexander Rautenberg  · 技术社区  · 14 年前

    对于普通属性getter/setter语法

    let mutable myInternalValue
    
    member this.MyProperty 
        with get() = myInternalValue
        and set(value) = myInternalValue <- value
    

    是否有类似于C中以下内容的快捷方式?

    someType MyProperty { get; set; }
    

    如果有,我似乎找不到它…

    3 回复  |  直到 9 年前
        1
  •  51
  •   bentayloruk    11 年前

    F 3有 自动实现的属性 因此,您可以声明属性而不声明支持字段。

    示例取自 Properties(F#) 关于MSDN:

    type MyClass() =
        member val MyProperty = "" with get, set
    
        2
  •  11
  •   Tomas Petricek    9 年前

    没有创建的快捷方式 get / set F中的属性,但如果您希望 得到 您可以使用以下简单语法:

    type Test(n) =
      let myValue = n * 2
      member x.Property = 
        // Evaluated each time you access property value
        myValue + 5
    

    由于f是一种功能性语言,f类型通常是不可变的。这种语法使得定义不可变类型非常容易,因此它还鼓励您在f_中使用良好的函数式编程风格。

    但是,我同意 得到 / 设置 属性将非常有用,尤其是在编写一些需要与C/其他.NET库进行互操作的代码时。

    编辑 (5年后…):F 3.0中增加了这一点,本的回答是:—)

        3
  •  2
  •   Richard    14 年前

    是否有类似于C中以下内容的快捷方式?

    我不这么认为(在“专家F”的语法摘要中没有显示任何内容),而且与C所需的完整语法相比,F语法已经相当简短了。