9
我想從F#類型發佈事件,但我希望它被視爲來自C#或VB的事件。看來正確的方法是IEvent.create_HandlerEvent,但是這個函數並不存在於最新版本的F#中。那麼現在做什麼是正確的方法呢?如何在F#中創建與.NET兼容的事件?
我想從F#類型發佈事件,但我希望它被視爲來自C#或VB的事件。看來正確的方法是IEvent.create_HandlerEvent,但是這個函數並不存在於最新版本的F#中。那麼現在做什麼是正確的方法呢?如何在F#中創建與.NET兼容的事件?
事件是不是我的專長,但這個例子似乎在F#1.9.6.16工作:
namespace EventExample
open System
type MyEventArgs(msg:string) =
inherit EventArgs()
member this.Message = msg
type MyEventDelegate = delegate of obj * MyEventArgs -> unit
type Foo() =
let ev = new Event<MyEventDelegate, MyEventArgs>()
member this.Ping(msg) =
ev.Trigger(this, new MyEventArgs(msg))
[<CLIEvent>]
member this.GotPinged = ev.Publish
參見
謝謝,它的工作原理:)請問如何做你知道CLIEventAttribute?我沒有在文檔/語言規範/谷歌的任何地方看到它...... – 2009-05-24 18:33:40