How to create .NET-compatible events in F#?

前端 未结 1 921
死守一世寂寞
死守一世寂寞 2021-01-04 23:52

I am trying to publish an event from an F# type, but I want it to be seen as an event from C# or VB. It seems that the correct way to do it used to be IEvent.create_HandlerE

相关标签:
1条回答
  • 2021-01-05 00:00

    Events are not my forte, but this example seems to work on 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
    

    See also

    http://cs.hubfs.net/forums/thread/10555.aspx

    0 讨论(0)
提交回复
热议问题