热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#学习教程:是否可以在单个VisualStudioWindows控制台项目中混合使用.cs(C#)和.fs(F#)文件?(。净)分享

是否可以在单个VisualStudioWindows控制台项目中混合使用.cs(C#)和.fs(F#)文件?(。净)怎么做?是否可以在不使用分离的dll文件或项目的情况下将函数从一

是否可以在单个Visual Studio Windows控制台项目中混合使用.cs(C#)和.fs(F#)文件? (。净)

怎么做? 是否可以在不使用分离的dll文件或项目的情况下将函数从一个F#代码调用到C#中?

您不能在同一个项目中包含两种不同的语言,但可以使用ilmerge合并它们。 为此,将两个项目放在同一个解决方案中,并引用F#模块,就像使用任何dll一样。 作为部署脚本的一部分,运行ilmerge将exe文件和dll文件合并到一个exe文件中。 请参阅此Code Project文章,其中详细介绍了如何使用ilmerge创建exe。

无法在同一个项目中混合C#和F#会产生问题; 它导致两个项目之间的循环依赖。 从概念上讲,只有一个项目包含两种语言,但由于visual studio管理项目的方式不能混合语言,导致循环依赖。

现在,我认为唯一的解决方案是在第三个项目中创建大量接口,并让其中一个项目引用接口项目,而不是真正的项目。 有没有更好的办法?

亲切的问候,尼克

不。如果你想生产单个.exe,你可以使用一些f#静态链接选项使用F#–full-help comandline开关来了解更多这些细节。

您无法在C#项目中编译F#源文件(.fs),但您可以添加F#脚本文件(.fsx),您可以使用它来引用和探索来自F#interactive的C#项目程序集:

public static class Math { public static double PowN(double d, int n) { var result = 1; for (int i = 0; i  

F#脚本文件(.fsx):

 #r "bindebugClassLibrary1.dll" Math.PowN(2.0,3) 

编译你的F#代码,用任何工具(如reflection器,ilspy)“反编译”到C#代码,将它包含在项目中 – >利润!

上述就是C#学习教程:是否可以在单个Visual Studio Windows控制台项目中混合使用.cs(C#)和.fs(F#)文件? (。净)分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---编程笔记


推荐阅读
author-avatar
huyuping6215
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有