编写 F# Windows 窗体应用程序我发现了 F# 的 Event.Filter 函数,我想了解更多有关它的信息。我所做的是转换我现有的代码:
MyControl.MouseMove.Add( fun args ->
if (args.Button = MouseButton.Left && args.X > 10 && args.Y > 10)
then // do something
到 :
MyControl.MouseMove
|> Event.filter ( fun args ->
(args.Button = MouseButtons.Left && args.X > 10 && args.Y > 10))
|> Event.add ( // do something)
我发现 Event.Filter 解决方案非常优雅,所以我想知道它是否只是一种语法糖,或者是“幕后”工作方式的差异。