2
編寫一個F#Windows窗體應用程序我發現了F#的Event.Filter函數,我想了解更多信息。 我所做的就是將我現有的代碼: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真正優雅的,所以我想知道,如果它只是一種語法糖,或者是事物如何在「引擎蓋下」工作的差異。
好吧,我懷疑它或多或少地以這種方式實現,但我希望有一個更復雜的機制。我同意你的觀點,事實上Event.filter函數的使用更具可讀性和直接性。 –