gpt4 book ai didi

c# - 是否可以将 C# 编译为 IL 并将生成的 IL 反编译为 F#?

转载 作者:行者123 更新时间:2023-12-03 22:57:13 31 4
gpt4 key购买 nike

C# 编译成 IL,然后很容易使用 ILSpy 或 dotPeek 反编译回 C#。

是否有任何工具可以将相同的 IL 反编译成 F#?

即是否有一种通过 IL 将 C# 转换为 F# 的偷偷摸摸的方法?

理由:

  • 我们有一个非常大的 C# 项目并希望“发挥作用”。
  • 翻译是一项艰巨的工作。
  • 如果第一次翻译可以自动化,我们可以在
  • 之后手动改进它

    也就是说,这会比在 F# 中从头开始编写所有内容要快吗?

    我们还没有 F# 的经验,因此这个问题可能很幼稚。

    进一步说明
    是的,我们在 C# 中使用函数式的东西,但出于各种原因,我们希望在 F# 中实现完整的函数式。该选择不在这里进行辩论,但感谢您对此的评论。

    最佳答案

    惯用的 F# 代码使用不同的类型、方法和结构。将 C# 生成的 IL “反编译”为 F# 并没有什么好处,尤其是当您认为可以很容易地与 C# 代码交互时。更糟糕的是,反编译任何东西都会让你丢失很多信息——本地人的名字、常量、注释等等。这不是不可能的,但是你在浪费大量的精力来重建一些无论如何都是中间步骤的东西。

    将 C# 代码分解成可以慢慢用 F# 代码替换的部分。这样,您就有机会生成良好的 F# 代码,并根据需要逐步替换所有内容。不要从头开始编写任何东西 - 尽可能多地保留旧代码,只更改需要更改的内容以改进与 F# 代码的接口(interface)。

    C# 已经是一种“功能强大”的语言——不像 F# 那样简洁和富有表现力,但是在 F# 中可以做的事情很少,但在 C# 中却不能以相当简单的方式做。这意味着逐渐转变为功能风格并不像听起来那么困难——而且这是你无论如何都无法避免的工作,如果你的目标是(出于某种原因;我希望你也有一个实际的目标,这是只是一个中间步骤:) 功能代码。

    关于c# - 是否可以将 C# 编译为 IL 并将生成的 IL 反编译为 F#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60320523/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com