热门标签 | 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#学习教程,希望大家多多关注---编程笔记


推荐阅读
  • 本文介绍了如何在 ASP.NET 中设置 Excel 单元格格式为文本,获取多个单元格区域并作为表头,以及进行单元格合并、赋值、格式设置等操作。 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 在C#编程中,数值结果的格式化展示是提高代码可读性和用户体验的重要手段。本文探讨了多种格式化方法和技巧,如使用格式说明符、自定义格式字符串等,以实现对数值结果的精确控制。通过实例演示,展示了如何灵活运用这些技术来满足不同的展示需求。 ... [详细]
  • 在C#编程中,设计流畅的用户界面是一项重要的任务。本文分享了实现Fluent界面设计的技巧与方法,特别是通过编写领域特定语言(DSL)来简化字符串操作。我们探讨了如何在不使用`+`符号的情况下,通过方法链式调用来组合字符串,从而提高代码的可读性和维护性。文章还介绍了如何利用静态方法和扩展方法来实现这一目标,并提供了一些实用的示例代码。 ... [详细]
  • MATLAB字典学习工具箱SPAMS:稀疏与字典学习的详细介绍、配置及应用实例
    SPAMS(Sparse Modeling Software)是一个强大的开源优化工具箱,专为解决多种稀疏估计问题而设计。该工具箱基于MATLAB,提供了丰富的算法和函数,适用于字典学习、信号处理和机器学习等领域。本文将详细介绍SPAMS的配置方法、核心功能及其在实际应用中的典型案例,帮助用户更好地理解和使用这一工具箱。 ... [详细]
  • 在当前的软件开发领域,Lua 作为一种轻量级脚本语言,在 .NET 生态系统中的应用逐渐受到关注。本文探讨了 Lua 在 .NET 环境下的集成方法及其面临的挑战,包括性能优化、互操作性和生态支持等方面。尽管存在一定的技术障碍,但通过不断的学习和实践,开发者能够克服这些困难,拓展 Lua 在 .NET 中的应用场景。 ... [详细]
  • 如何在C#中配置组合框的背景颜色? ... [详细]
  • C++ 开发实战:实用技巧与经验分享
    C++ 开发实战:实用技巧与经验分享 ... [详细]
  • 在VS2013中编译FFMPEG时遇到的问题及解决方案
    在使用VS2013编译旧版本FFMPEG库时遇到了一些问题,因为官方并未提供预编译的LIB和DLL文件。由于对Linux环境不熟悉,只能在Windows环境下进行配置和编译。具体步骤如下:首先,下载FFMPEG的源代码;然后,安装必要的编译工具和依赖项;接着,配置Visual Studio 2013的项目设置;最后,解决编译过程中出现的各种错误和警告。通过这些步骤,最终成功编译出所需的FFMPEG库文件。 ... [详细]
  • 本文详细介绍了在C#编程环境中绘制正方形图像的技术和实现方法,通过具体示例代码帮助读者理解和掌握相关技巧。内容涵盖从基础概念到实际应用的各个方面,适合初学者和有一定经验的开发者参考。希望对您的C#学习之旅有所帮助,并激发您进一步探索的兴趣。 ... [详细]
  • C#编程中按钮控件的使用与优化 ... [详细]
  • 双指针法在链表问题中应用广泛,能够高效解决多种经典问题,如合并两个有序链表、合并多个有序链表、查找倒数第k个节点等。本文将详细介绍这些应用场景及其解决方案。 ... [详细]
  • 在使用 Cacti 进行监控时,发现已运行的转码机未产生流量,导致 Cacti 监控界面显示该转码机处于宕机状态。进一步检查 Cacti 日志,发现数据库中存在 SQL 查询失败的问题,错误代码为 145。此问题可能是由于数据库表损坏或索引失效所致,建议对相关表进行修复操作以恢复监控功能。 ... [详细]
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社区 版权所有