2008-09-30 70 views

回答

5

學習它的最好方法是編寫你理解的東西,然後看看它創建的IL。另外,根據你在做什麼,你可以使用表達式樹來代替發送IL,然後當你編譯表達式樹時,那些微軟的聰明人會爲ya創建IL。

+0

表達樹FTW! 沒想過!謝謝! – TheSoftwareJedi 2008-09-30 23:05:48

5

.NET Reflector非常適用於檢查由C#/ VB.NET生成的IL。

這是一個很棒的學習工具。

+0

我一直在使用它,但將它反編譯爲C# - 非常好的建議,謝謝! – TheSoftwareJedi 2008-09-30 23:02:07

5

的ECMA 335規範可在這裏下載: http://www.ecma-international.org/publications/standards/Ecma-335.htm

分區III是最相關的處理MSIL,但我強烈建議分區我以及任何.NET開發人員,因爲它會大大鞏固了對該平臺的理解。

+0

我想提一下,在過去的幾周裏,我也想深入研究.Net的碗,並瞭解CIL代碼。我能找到的最好的文檔是規範。不幸的是,我還沒有找到一個堅實的「自學CIL」網站,該網站有足夠的信息來熟練掌握MSIL。如果你想要硬記錄,規範似乎是最好的去處。 – RLH 2015-03-13 11:24:54

6

除了達倫的回答,我建議選擇或發明一種玩具語言,併爲它編寫一個簡單的編譯器。選擇一些需要很少解析的東西,比如BF或基於堆棧的語言,你會發現編寫一個編譯器實際上比看起來簡單。