F#创建一个void返回的委托

时间:2013-04-11 10:42:24

标签: delegates f#

我正在尝试编写一个应该使用C#/ .Net dll的f-sharp程序。 C#代码如下所示:

public delegate void OnX (X x);
public delegate void OnXError (X x, string error);
public Foo(OnX onX, OnXError onXError);

我目前在F#中的尝试看起来像这样:

let OnX (x:X) =
   ()
let OnXError (x:X) (error:sting)=
   ()
let foo=new Foo(OnX,OnXError)

这不编译。 OnX的类型为x - >单位而不是OnX。我还试图以单独的绑定方式创建委托,但还没有找到解决方案。

1 个答案:

答案 0 :(得分:2)

您可以明确地创建委托:

let d1 = new OnX(fun (x: X) -> ())
let d2 = new OnXError(fun (x: X) (error: string) -> ())