在哪里设置虚拟方法参数的属性?

时间:2013-09-11 19:23:15

标签: f#

我没有找到明确答案......

这个C#代码的F#等价物是什么:

public class SomeClass
{
    public virtual SomeMethod([Attribute] Int32 param)
    { }
}

因为将属性放在F#中有两个不同的位置:

type SomeClass () =

   abstract SomeMethod : [<Attribute>] param:Int32 -> Unit
   default this.SomeMethod ([<Attribute>] param) = ()

1 个答案:

答案 0 :(得分:3)

您可以将它放在两者上,但覆盖(default)是重要的。

type T =
  abstract M : (* [<Out>] this is okay too *) i: byref<int> -> unit
  default this.M([<Out>] i) = () //but this one's necessary