【发布时间】:2020-10-22 18:13:42
【问题描述】:
在敲了几个小时的头之后,我有了这个工作。现在我正试图了解原因。
这是来自 c# 库的事件定义:
internal readonly AsyncEvent<Func<SocketMessage, Task>> _messageReceivedEvent = new AsyncEvent<Func<SocketMessage, Task>>();
它的唯一工作方式是直接传入 (fun -> ):
helper.client.add_MessageReceived
(fun msg ->
processMsg msg)
不能参数化:
let x =
(fun msg ->
processMsg msg)
helper.client.add_MessageReceived x
我最初尝试只传递 processMsg 函数。它看起来像正确的签名:
helper.client.add_MessageReceived processMsg
【问题讨论】:
-
add_MessageReceived的确切签名是什么? -
F# intellisense 说
BaseSocketClient.add_MessageReceived(value: System.Func<SocketMessage, Task>) : unit -
我的函数是
val processMsg : (SocketMessage -> Task)