Как создать .NET-совместимые события в F #? - PullRequest
9 голосов
/ 24 мая 2009

Я пытаюсь опубликовать событие из типа F #, но я хочу, чтобы оно рассматривалось как событие из C # или VB. Кажется, что правильным способом сделать это был IEvent.create_HandlerEvent, но эта функция не существует в последней версии F #. Так как правильно сделать это сейчас?

1 Ответ

13 голосов
/ 24 мая 2009

События не являются моей сильной стороной, но этот пример работает на 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

Смотри также

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...