[英]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.