自动F#转C#转换

Jac*_*eja 9 c# mono f# xamarin.ios xamarin.android

我想知道是否有自动将F#代码转换为C#代码在实践中运行良好.这样做的原因是我们在F#中有一些逻辑,我们希望使用Mono for Android,MonocMac,MonoTouch ......为每个平台创建一个应用程序.由于那些不直接支持F#,如果我们可以继续编写F#中的逻辑并使用C#和那些工具执行GUI部分,那将是很好的.

谁知道什么?谢谢.

sko*_*ima 7

为什么需要翻译代码?编译的托管二进制文件应该与Mono一起使用.只需将其添加到项目中即可.

您可以使用像ILSpy这样的工具将您的代码反编译成另一种语言,但这并没有太大的改变 - 这就是将不同语言编译成.NET CIL的重点.

  • 是的,我看过一个演示,其中通过单声道触摸在iPhone上运行F#二进制文件.有一些限制,基本上你需要能够静态地解决所有问题,但你可以在C#和F#中使用它们.这些限制在此处记录:http://docs.xamarin.com/ios/about/limitations (3认同)

pad*_*pad 5

任何支持F#和C#的.NET反编译都可以做到.

例如: Cecil.DecompilerILSpy.

Steve Gilham有一些关于使用Cecil.DecompilerILSpy以及其他一些关于F#和C#代码之间的互操作性的博客文章将F#反编译为C#的文章.这些文章可能对您有所帮助.

通常情况下,我只会ILSpy在我想知道F#代码下发生了什么时使用,当反编译为C#时,这将更加明确.将F#代码编译成一个单独的dll并在C#代码中使用它是最好的方法.

  • ILSpy生成的C#代码不太可能编译,因为在F#中使用闭包会产生名称无效C#的内部类. (4认同)