F#IEvent.create

cnd*_*cnd 2 f#

哪里消失了?

let triggerFindNext,findNextEvent = IEvent.create<EventArgs>()
Run Code Online (Sandbox Code Playgroud)

未定义字段,构造函数或成员"create"

也许我必须为它添加一些框架?

Tom*_*cek 5

IEvent.create函数已被弃用.创建事件的新方法是创建该Event类型的实例.在最简单的情况下,你可以这样写:

let evt = new Event<EventArgs>() 

// Trigger event (instead of first element of the tuple)
evt.Trigger()
// Returns IEvent<EventArgs> value (instead of second element of the tuple)
evt.Publish
Run Code Online (Sandbox Code Playgroud)

这表示使用IEvent<_>值的事件(如果将其作为属性公开,则不会生成.NET兼容事件)并且它使用Handler<_>来自F#库的通用委托.

(如果要生成可从C#使用的.NET兼容事件,那么您需要添加CLIEvent属性,并且您可以使用它的变量Event将委托作为通用参数,如其他人已经提到的答案中所述)

编辑:我在这里发布了一个更完整的F#片段(具有更好的格式):http://fssnip.net/1d