在System.Activities.WorkflowApplication中有一个委托属性:
public Action<WorkflowApplicationCompletedEventArgs> Completed { get; set; }
Run Code Online (Sandbox Code Playgroud)
到目前为止,在我的程序中,我有一个变量,它是这个类的一个实例
我想定义一个F#函数来设置:
let f (e: WorkflowApplicationCompletedEventArgs) =
// body
myInst.Completed <- f
Run Code Online (Sandbox Code Playgroud)
但这会产生错误:
错误102此表达式应该具有Action类型,但这里有类型'a - > unit
如何完成函数"f"以满足编译器?
如果将匿名函数传递fun a -> ...给期望a System.Action<...>或a 的方法或构造函数,System.Func<...>则会自动转换; 在任何其他情况下,您需要像@Funk指示的那样明确地转换它.
let f = System.Action<WorkflowApplicationCompletedEventArgs>(fun e ->
// body
)
myInst.Completed <- f
// Another solution:
let f (e: WorkflowApplicationCompletedEventArgs) =
// body
myInst.Completed <- System.Action<_>(f)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1939 次 |
| 最近记录: |