gpt4 book ai didi

.net - Event.Trigger Event.Publish f#

转载 作者:行者123 更新时间:2023-12-04 17:51:11 25 4
gpt4 key购买 nike

阅读有关在 f# 中创建新事件的代码时,我遇到了两个调用 event.Publish 和 event.Trigger,但我不太确定它们的含义。你能向我解释一下他们是做什么的吗?

请注意手册中的内容:event.Publish将观察结果发布为第一类值。event.Trigger使用给定的参数触发观察。

由于我是意大利人,因此在这种情况下使用的“观察”一词对我没有任何好处。

最佳答案

实现暴露事件的新 F# 类型时的典型模式是将事件值创建为本地字段,使用 event.Trigger 触发事件。代码中的某处,并使用 trigger.Publish 将其公开给您类型的用户:

type Counter() =
// Create the `Event` object that represents our event
let event = new Event<_>()
let mutable count = 0
member x.Increment() =
count <- count + 1
if count > 100 then
// Trigger the event when count goes over 100. To keep the sample
// simple, we pass 'count' to the listeners of the event.
event.Trigger(count)
// Expose the event so that the users of our type can register event handlers
[<CLIEvent>]
member x.LimitReached = event.Publish
CLIEvent已发布成员的属性是可选的,但最好了解它。它表示该成员将被编译为 .NET 事件(C# 会将其视为 event )。如果您不添加它,则 F# 会将其作为类型 IEvent 的成员公开。 (这适用于 F# 使用)。

关于.net - Event.Trigger Event.Publish f#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15916044/

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