1

我正在尝试编写一个应该使用 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# L 中的尝试如下所示:

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

这不编译。OnX 具有类型 x -> unit 而不是 OnX。我也尝试在单独的绑定中创建委托,但还没有找到解决方案。

4

1 回答 1

2

您可以显式创建委托:

let d1 = new OnX(fun (x: X) -> ())
let d2 = new OnXError(fun (x: X) (error: string) -> ())
于 2013-04-11T11:03:51.220 回答