標籤:
C#學習筆記—第一天一、C#與.NET Framework的關係
C#編譯器專門用於.NET,這表示用C#編寫的所有代碼總是使用.NET Framework運行。所以對於C#語言來說,可以有一下兩個結論:
1)C#的 體繫結構和方法論反映了.NET基礎方法論。
2)在許多情況下,C#的特定語言功能取決於.NET的功能,或依賴於.NET的基類。
二、.NET編譯過程
1)將原始碼編譯成Microsoft中繼語言IL(Intermediate Language);
2)公用語言運行庫CLR把IL編譯為平台專用的代碼。
三、 中繼語言IL
IL(Intermediate Language)是微軟.NET平台上衍生出的一門中繼語言,.NET平台上的各種進階語言(如C#,VB,F#)的編譯器會將各自的代碼轉化為IL。,其中包含了.NET平台上的各種元素,如“範型”、“類”、“介面”、“模組”、“屬性”等等。值得注意的是,各種進階語言本身可能根本沒有這些“概念”在裡頭,如IronScheme是一個在.NET平台上的Scheme語言實現,其中根本沒有前面提到的這些IL——亦或說是.NET平台上的名詞。IL本身並不知道自己是由哪種進階語言轉化而來的,哪種語言中有哪些特性,IL也根本不會關心。通過中繼語言IL,能夠實現平台無關性。
四、即時編譯JIT
JIT編譯器並不是把整個應用程式一次編譯完,而是只編譯它調用的那部分代碼。代碼編譯過一次後,得到的本地可執行程式就儲存起來,直到退出該應用程式為止,這樣在下次執行這部分代碼時,就不需要重新編譯了。
五、Managed 程式碼
公用語言運行庫環境執行的代碼,而不是作業系統執行的代碼。
六、finally
當一個異常拋出時,它會改變程式的執行流程。因此不能保證一個語句結束後,它後面的語句一定會執行,在 C# 中這個問題可以用 finally 解決。
為了確保一個語句總是能執行(不管是否拋出異常),需要將該語句放到一個 finally 塊中,finally 要麼緊接在 try 塊之後,要麼緊接在 try 塊之後的最後一個 catch 處理常式之後。只要程式進入與一個 finally 塊關聯的 try 塊,則 finally 塊始終都會運行 – 即使發生了一個異常。
C#學習筆記—第一天