如果我在C#商店工作并尝试编写F#只是依靠ILSpy进行转换,会有什么风险?

Sco*_*rod 2 f# cil inline decompiler ilspy

如果我在C#商店工作并尝试在F#中编写功能然后依靠ILSpy将F#源代码翻译成C#表示,会涉及哪些风险?

The*_*ght 9

我强烈建议不要这样做.

  • 已经反编译成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#中完成的相同项目相比,开发时间往往更短(有时是实质性的),并且通常更容易验证和测试结果.这些是商业上非常吸引人的优点.

  • @ScottNimrod我很难向你提供有关如何处理公司的建议,最终你比我更了解你的团队.也就是说,您可以做的任何事情来证明使用F#的商业价值都将有助于您的案例.如果你认为这将是一个艰难的卖点,我会推迟,直到你知道FP/F#真的会出类拔萃的情况.在某些情况下,很明显它是表达特定问题的更好选择,在其他情况下,对于那些几乎没有F#体验的人来说可能不那么明显. (2认同)