簡體   English   中英

F#中的事件和代表

[英]Events and Delegates in F#

我沒有F#的經驗,但在C#中有幾行測試代碼用於我需要在F#中重寫的框架。

任何幫助,將不勝感激。

    bar.Ready += new Agent.ReadyHandler(bar_Ready);               

    static void bar_Ready(string msg)
    {    
       Console.WriteLine(msg.body);  
    }

只是為了澄清 - 較短的版本應該是正確的:

bar.Ready.Add(fun msg -> System.Console.WriteLine(msg))  

因為F#不會自動將lambda函數轉換為委托 - 但是有一個帶有函數的Add方法。 然后可以更簡單地編寫這樣的代碼:

bar.Ready.Add(System.Console.WriteLine)  

因為F#允許您使用.NET成員作為一等函數。

嘗試這個 -

bar.Ready.AddHandler(new Agent.ReadyHandler (fun sender msg -> System.Console.WriteLine(msg)))

我已經玩了很多,這是有用的代碼。

bar.add_Ready(fun msg -> Console.WriteLine(msg))

我不知道它在理論上是多么正確,但它工作正常。

任何人都可以確認它是正確的嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM