我已经听说过F#,微软现在有一个人正在写博客,并在某个地方用redmond编码。 你真的可以从F#编写GUI代码吗?(我很想看看一个例子,比如向表单添加一个button并订阅onclick事件)
F#是否可以完全访问所有.Net?
我真的很好奇,我知道我可以谷歌,但我很想听到真正使用该语言的人。
是的,你当然可以编写WinForms应用程序 – 虽然你不会重写OnClick方法,但是你可以订阅Click事件。
是的,F#可以完全访问.NET,但是如果使用了很多可变类型的话,你将不会得到非常地道的功能代码。
TomášPetříček的F#网站上有他的书的示例源代码(免责声明:我也参与了这本书,所以我显然有偏见),它有WinForms的例子。
我强烈推荐Scott Hanselman撰写的 这篇优秀的文章 ,其中指出了一些F#资源,包括例子和演示文稿。
但是正如Jon Skeet所说,Tomas有一些有趣的例子(特别是过滤/管道事件),这些例子展示了我认为可能是一个很好的交叉点,也就是设计你的C#GUI,然后用F#与事件挂钩。
这是我认为一个非常好的方法。 设计复杂的图形用户界面没有WinForms设计器有点恼人(虽然,差异不是很大,在WPF – F#不支持WPF设计器,但你不会失去那么多东西)。
无论如何,请继续关注更多的例子:-)。 使用声明式事件处理(Event.filter,Event.map和Friends)是相当不错的,但在某些情况下,它不是你想要的。 我只是写了一个关于这个的章节,我认为F#为您提供了一些非常棒的方法来处理图形用户界面 – 源代码将在书籍网站上免费提供,我也希望能为我的博客写一些简短的介绍一旦这本书将被完成。
我没有真正使用F#,只能读取规格。 对于WinForms的开发来说,这可能是件好事,但我对此的直接反应是“这并不重要”。 只要你使用CLR兼容的编译器,你应该可以将F#程序集与C#/ IronPython /等编写的程序集混合使用。
是的,F#可以使用.NET Framework,而其他.NET程序集可以使用F#程序集。
我的建议是用F#编写你的函数库,然后用你喜欢的任何.NET语言编写客户端应用程序。
你可以从F#编写GUI代码,但我不确定你想要。 如果你是那种在记事本中编写C#GUI的人,那么它可能不会打扰你。 就我个人而言,我更喜欢设计师,F#没有一个,据我所知,也不会有一个 – 这可能说明了F#的预期用途。
但正如Jon Skeet所说,Tomas有一些有趣的例子(特别是过滤/管道事件),这些例子展示了我所怀疑的可能是一个很好的交叉点,也就是用设计器设计你的C#GUI,然后用F#与事件挂钩。