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