[英]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.