[英]why my ILSpy shows a different version of code?
与您的讲师相比,您使用的是更现代的 ILSpy 版本。 您更现代的版本可以更好地将 C# 的较新语言功能反转为更简单的 C# 代码。
例如,旧版本的 ILSpy 无法将带有await
关键字的async
方法反编译回单个源方法,而是将它们显示为已编译的多方法状态机(正如您在<Main>d_0
如何TaskAwaiter
所看到的TaskAwaiter
) <Main>d_0
)。
如果您想要与您的讲师相同的显示,您需要使用与他们相同版本的 ILSpy。 从屏幕截图看来,他们使用的是 ILSpy 4 或更早版本 - 现在已经非常过时了。 您应该告诉您的讲师获取最新版本(截至 2020 年 11 月,它是 6.1 版)。
ILSpy 工具栏有一组按钮,可让您选择
如果您选择“显示所有类型和成员”,即使启用了async
功能的反编译,您也会看到编译器生成的类及其 MoveNext 方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.