Cod*_*ked 12 c# f# visual-studio
这个问题的灵感来自于这样一个问题:F#在哪些领域"使用时绝对没有意义"?
理论上,应该可以在单个项目中使用任何.NET支持的语言.因为每件事都应该编译成IL代码,然后链接到一个程序集中.
一些好处包括能够在一个类中使用F#,其中F#更适合实现它的功能,C#适用于另一个类.
是否有一些我忽视的技术限制阻止了这种设置?
Kei*_*thS 13
一个项目仅限于一种语言,因为一个项目只不过是一个MSBuild脚本,它调用一个命令行编译器从项目文件夹中"包含"的各种源代码文件生成一个程序集. .每种语言都有不同的编译器(CSC.exe例如是C#的编译器),每个项目将其"包含"的源代码转换为程序集所必须做的事情因每种语言而异.
为了允许将多种语言编译成单个程序集,项目基本上必须为每种语言生成程序集,然后IL-Merge它们.这是昂贵的,需要复杂的自动化和项目文件代码生成,并且在大多数情况下这是一个非常边缘的需求,所以VS团队根本没有构建它.
虽然项目仅限于一种语言,但解决方案并非......解决方案可以包含多个项目.
正如其他人提到的,项目是一个由单个编译器编译的独立单元.
我经常听到关于在一个更大的C#项目中包含一个F#类型的问题,所以我将从F#特定的角度添加一些细节.有一些技术问题会导致在一个项目中混合使用F#和C#非常困难:
System.Type信息,那么他们将如何共享信息呢?(他们都需要就允许他们包含语言特定信息的一些通用接口达成一致 - 而且信息可能也不完整).我认为这足以说明这样做不仅仅是根据时间表可能会或可能不会完成的功能.这实际上是一个有趣的研究问题.
| 归档时间: |
|
| 查看次数: |
1747 次 |
| 最近记录: |