gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 07:03:50 24 4
gpt4 key购买 nike

这在 C# 中似乎工作正常:

class A : System.Attribute { public A() {} }

public class B
{
public int X
{
[A] get { return 1; }
[A] set { }
}
}

但是在 F# 中,当我尝试在属性 getter 和 setter 上设置属性时,我无法绕过语法错误:
type A() = inherit System.Attribute()

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

有没有办法做到这一点?

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

最佳答案

MSDN-documentation建议如下:

type A() = inherit System.Attribute()

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

...但根据 .Net Reflector它似乎没有产生预期的 IL。对我来说看起来像一个错误。

编辑:或者 .Net Reflector 中的错误...

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

关于f# - 如何在 F# 中的 getter 和 setter 上设置不同的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1410028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com