给定以下片段:
type Foo() =
static member Test (act : unit -> unit) = act()
static member Test (act : Action) = Foo.Test act.Invoke
我在最后一行出现错误,说明:无法根据此程序点之前的类型信息确定方法“测试”的唯一重载。可能需要类型注释。
不幸的是,类型注释(act.Invoke : unit -> unit)
不能解决歧义,我找不到可以修复它的注释。我希望该Action
版本是该版本的包装器->
。我的特定用例是定义一个将从 F# 和 C# 调用的类,因此我希望它能够在两种语言中本地工作。