gpt4 book ai didi

.net - F# 删除函数处理程序

转载 作者:行者123 更新时间:2023-12-04 10:04:46 26 4
gpt4 key购买 nike

所以,我有一个想要在事件触发器上执行的函数,但我想稍后将其删除。我该怎么做?我知道 F# 事件有 Add将函数添加为处理程序的方法,但您不能删除此函数。我明白,但我根本找不到如何创建任何委托(delegate)! (嗯,有 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"

但我的问题是我想在某个时候删除这个钩子(Hook)。我知道它可能与代表......只是不知道该怎么做。

最佳答案

是的,只需使用处理程序。

// Define and publish event
let _someEvent = new Event<string>()
let SomeEvent = _someEvent.Publish

// wrap function in handler
let handler = Handler<string>(fun _ arg -> printfn "Argument: %s" arg)

// add
SomeEvent.AddHandler handler

// remove
SomeEvent.RemoveHandler handler

关于.net - F# 删除函数处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14533489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com