2

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

4

1 回答 1

9

我强烈建议不要这样做。

  • 已反编译成 C# 的 F# 代码往往非常冗长且不可读。没有原始 F# 代码副本的任何人都几乎不可能理解或维护。
  • 函数式代码为您提供了在 OO 语言中没有的代码重用机会。通过反编译生成的 C# 代码可能不会提供 (m) 任何超出反编译 F# 边界的重用途径。
  • F# 中惯用的东西有时不在 C# 中,在反编译的中间阶段之后尤其如此。该代码可能不会通过审查过程。
  • 具有静态类型约束的度量单位和inline函数都是 F# 编译器的功能,而不是 .NET 提供的功能。通过直接使用反编译的 C#,您可能会从它们中获得一些优势,但不会检查对 C# 源代码所做的任何修改,例如尺寸正确性。

我也赞同 Tomas 的通读这篇文章的建议:http: //fsharpforfunandprofit.com/posts/low-risk-ways-to-use-fsharp-at-work/

但是,我建议与您的团队/经理讨论在您的工作场所引入 F# 的可能性。

我个人在商业上使用 F# 的经验是,与在 C# 中完成的相同项目相比,开发时间往往更短(有时相当长),而且通常更容易验证和测试结果。这些优势在商业上非常有吸引力。

于 2015-12-01T18:47:57.350 回答