Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在F#中设置getter和setter的不同属性?_F# - Fatal编程技术网

如何在F#中设置getter和setter的不同属性?

如何在F#中设置getter和setter的不同属性?,f#,F#,这在C#中似乎很有效: 但在F#中,当我试图在属性getter和setter上设置属性时,我无法避免语法错误: type A() = inherit System.Attribute() type B = member this.X with [<A>] get () = 1 and [<A>] set (x : int) = () type A()=继承系统属性() B类= 请记住这一点 当[]get()=1时 和[]集

这在C#中似乎很有效:

但在F#中,当我试图在属性getter和setter上设置属性时,我无法避免语法错误:

type A() = inherit System.Attribute()

type B = 
    member this.X 
        with [<A>] get () = 1
        and  [<A>] set (x : int) = ()
type A()=继承系统属性()
B类=
请记住这一点
当[]get()=1时
和[]集(x:int)=()
有办法吗

我的目标是在getter和setter上设置不同的属性。

建议如下:

type A() = inherit System.Attribute()

type B =     
    [<A>]
    member this.X with get () = 1
    [<A>]
    member this.X with set (x : int) = ()
type A()=继承系统属性()
B类=
[它似乎没有产生预期的IL。在我看来,它像一个bug

编辑:或一个错误在


编辑2:错误报告提交给fsbugs@microsoft.com

为了记录在案,F#团队的答复是:

现在(以及即将到来的未来) Beta2),属性目标属性 具体来说,getter和setter是 不支持


谢谢!事实上,我似乎无法通过反射检索setter属性。我正在联系fsbugs@...This尽管有文档,但仍然不起作用,而@t0yv0的初始尝试现在起作用了。这看起来像预期的那样起作用,尽管我不确定它是何时修复的。
type A() = inherit System.Attribute()

type B =     
    [<A>]
    member this.X with get () = 1
    [<A>]
    member this.X with set (x : int) = ()