Was ist F # -Äquivalent zu C # „öffentliches Ereignis“?

Ich versuche, aus diesem Artikel in F # -Code zu übersetzenhttp://www.codeproject.com/Articles/35532/C-COM-Object-for-Use-In-JavaScript-HTML-Including

Ich bin auf diese Zeilen gestoßen:

public delegate void MyFirstEventHandler(string args);
public event MyFirstEventHandler MyFirstEvent;

Ich habe versucht, dies in F # zu übersetzen als:

type MyFirstEventHandler = delegate of string -> unit
type MyFsComComponent () = 
    let my_event = new Event<MyFirstEventHandler,string> ()

    [<CLIEvent>]
    member x.MyFirstEvent = my_event.Publish

Und ich bekomme:'MyFirstEventHandler' hat einen nicht standardmäßigen Delegaten

Ich kann kompilieren mit:

type MyFirstEventHandler = delegate of obj*string -> unit

Dies ist jedoch nicht das, was für die COM-Steuerung benötigt wird.

Diese Frage stellt sich auch inC # zu F # Klassenübergang - "öffentliche Veranstaltung" hatte noch keine Lösung

Gelöst. Vielen Dank an Leaf Garland

type MyFirstEventHandler = delegate of string -> unit
type MyFsComComponent () =    
    let my_event = new DelegateEvent<MyFirstEventHandler> ()

    [<CLIEvent>]
    member x.MyFirstEvent = my_event.Publish

macht den Trick.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage