是否可以为F#中的递归类定义不同的属性

时间:2009-12-17 12:20:25

标签: f# attributes

我想声明两个相关联的类,因此我将它们声明为“和”连接在一起。每个都有不同的属性,但这个代码不起作用(关键字'和'的“意外的关键字'和'定义'错误。我应该如何声明第二类的属性?

[<AbstractClass>]
type foo() =
  abstract member fun1 : foo -> foo2
[<Serializable>]
and foo2() = class
  member x.bar y = y
end

2 个答案:

答案 0 :(得分:8)

它对我有用。你做过open System吗?

open System

[<AbstractClass>]
type foo() =
  abstract member fun1 : foo -> foo2
and [<Serializable>] foo2() = class
  member x.bar y = y
end

编辑: 啊,似乎第二个属性应该在and之后。

答案 1 :(得分:2)

是的,我打开了系统,是的,解决方法是将其放在and

之后

的Ta!