如果我在C#商店工作并尝试在F#中编写功能然后依靠ILSpy将F#源代码翻译成C#表示,会涉及哪些风险?
我强烈建议不要这样做.
已经反编译成C#的F#代码往往非常冗长且不可读.对于没有原始F#代码副本的人来说,理解或维护几乎是不可能的.
功能代码为您提供了在OO语言中不具备的代码重用机会.通过反编译生成的C#代码可能不会提供(m)超出反编译F#边界的任何重用途径.
F#中的惯用语有时不在C#中,在反编译的中间阶段之后尤其如此.代码可能不会通过审核流程.
inline
具有静态类型约束的度量单位和函数都是F#编译器的功能,而不是.NET提供的功能.您可以通过直接使用反编译的C#获得一些优势,但不会检查对C#源所做的任何修改,例如尺寸正确性.
我还要提到托马斯建议阅读这篇文章:http://fsharpforfunandprofit.com/posts/low-risk-ways-to-use-fsharp-at-work/
但是,我建议,与您的团队/经理讨论在您的工作场所引入F#的可能性是值得的.
我在商业上使用F#的个人经验是,与在C#中完成的相同项目相比,开发时间往往更短(有时是实质性的),并且通常更容易验证和测试结果.这些是商业上非常吸引人的优点.