【问题标题】:Remove goto/switch stataments after using ILSpy使用 ILSpy 后删除 goto/switch 语句
【发布时间】:2013-11-06 00:00:00
【问题描述】:

我在使用 ILSpy 时遇到了一些问题。我正在使用这个工具来反编译一个 DLL,但它存在很多垃圾。使用 ILSpy 后如何删除“goto”? :'(

有什么建议吗?

提前致谢。

【问题讨论】:

  • “垃圾很多”……这是什么意思?
  • 对不起。存在太多“goto”语句。我想只是为了阅读:)
  • ILSpy 在处理某些类型的条件表达式方面特别糟糕,尤其是那些具有嵌套赋值的条件表达式。它也不是最擅长循环的。我发现它比一些同行更容易产生带有复杂跳转语句的丑陋代码。我赞同@ScottChamberlain 对 dotPeek 的免费替代方案的推荐,或者 Reflector 的出色(但商业)解决方案的推荐。

标签: c# decompiling decompiler ilspy


【解决方案1】:

您唯一的选择是尝试不同的反编译器,并希望它将 IL 代码转换为不使用 goto 的 C# 代码。

市场上有很多反编译器,另一个像 ILSpy 这样好的免费反编译器是 DotPeek。

但是,请注意,原始来源也很有可能实际上将goto's 放入代码中,如果是这种情况,您无能为力。

【讨论】:

  • 即使原始代码有goto 语句,许多反编译器也会产生更结构化的输出。在处理复杂的条件和其他类型的代码时,ILSpy 恰好特别严格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多