我一直听说过F#,微软现在有一个人在redmond的某处写博客和编码。你真的可以从F#编写GUI代码(我很想看到一个例子,例如在表单中添加一个按钮并订阅onclick事件)
F#是否可以完全访问所有.Net?
我老实说好奇,我知道我可以谷歌,但我很乐意听到真正使用该语言的人。
答案 0 :(得分:16)
是的,您当然可以编写WinForms应用程序 - 虽然您不会覆盖OnClick方法,但您可以订阅Click事件。
是的,F#拥有对.NET的完全访问权限,但如果您使用大量可变类型,则不会获得非常惯用的功能代码。
Tomáš Petříček's F# web site有他的书中的示例源代码(免责声明:我也参与了本书,所以我显然有偏见),其中包含WinForms示例。
答案 1 :(得分:4)
我强烈推荐this excellent post Scott Hanselman,它指向一些F#资源,包括示例和演示文稿。
答案 2 :(得分:3)
但正如Jon Skeet所说,Tomas有一些有趣的例子(特别是过滤/管道事件),它们显示了我怀疑可能是一个很好的交叉点,即设计你的C#GUI与设计师,然后写出大脑在F#中,用事件挂钩到另一个。
我认为这是一个非常好的方法。在没有WinForms设计器的情况下设计复杂的GUI有点令人讨厌(但是,WPF中的差异不是很大--F#不支持WPF设计器,但是你没有放弃那么多东西)。
无论如何,请继续关注更多例子:-)。使用声明性事件处理(Event.filter,Event.map和amp; friends)非常好,但在某些情况下,它并不是你想要的。我只是写了一篇关于它的章节,我认为F#给你一些非常棒的方法来处理GUI - 源代码将在book web site免费提供,我希望能为我的博客写一些简短的介绍这本书也将完成。
答案 3 :(得分:1)
我实际上没有使用过F#,只读过规格。对WinForms开发来说可能很棒,但我对此的直接反应是“它并不重要”。只要您使用符合CLR的编译器,您就应该能够将F#程序集与使用C#/ IronPython / etc编写的其他程序集混合使用。
是的,F#可以使用.NET Framework,其他.NET程序集也可以使用F#程序集。
我的建议是在F#中编写函数库代码,然后使用您想要编写客户端应用程序的.NET语言。
答案 4 :(得分:1)
您可以从F#编写GUI代码,但我不确定您是否愿意。如果你是那种在记事本中编写C#GUI的人,那么它可能不会打扰你。我个人更喜欢设计师,而F#没有一个,据我所知,也不会有一个 - 这可能说明了F#的用途。
但正如Jon Skeet所说,Tomas有一些有趣的例子(特别是过滤/管道事件),它们显示了我怀疑可能是一个很好的交叉点,即设计你的C#GUI与设计师,然后写出大脑在F#中,用事件挂钩到另一个。