因此,我有一个想要在事件触发器上执行的函数,但我想稍后将其删除。我为此做什么?我知道 F# 事件有Add
添加函数作为处理程序的方法,但您无法删除此函数。我明白,但我根本找不到如何创建任何委托! (嗯,有is the type Foo = delegate of type1 -> type2
,但我不明白它的用法...)
编辑:这是我想要做的更清晰的示例,代码如下:
// Define and publish event
let _someEvent = new Event<string>()
let SomeEvent = someEvent.Publish
// Normally, I'd do this to use it:
SomeEvent.Add (fun arg -> printfn "Argument: %s" arg)
// Trigger the event
someEvent.Trigger "Hello world"
但我的问题是我想在某个时候删除这个钩子。我知道代表们可以这样做……只是不知道具体该怎么做。
另一种选择是使用 Subscribe 方法并使用 Dispose 取消订阅:
// Define and publish event
let someEvent = new Event<string>()
let SomeEvent = someEvent.Publish
// Subscribe to event
let subscription =
SomeEvent.Subscribe (fun arg -> printfn "Argument: %s" arg)
// Trigger the event
someEvent.Trigger "Hello world"
// Unsubscribe
subscription.Dispose()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)