C#和.NET Framework淺談
關于C#和.NET Framework的理解開始,由于有了Java的基礎,在一些概念的理解上還是可以通過類比來了解的。在這里主要講一些C#中特有的或者與Java有區(qū)別的東西,本系列的文章主要是為自己的學習做一個筆記。
首先來看一下.NET Framework的組成,如下圖所示:
包括了3個方面的內容,
1. CLR(Common Language Runtime,公共語言運行庫)。負責在運行時管理軟件的執(zhí)行。包括內存的管理,代碼安全驗證,代碼執(zhí)行,垃圾收集(GC)等內容,相當于Java中的JVM的角色。
2. 編程工具,包括了代碼的開發(fā),調試,編譯等工作。包括Visual Studio開發(fā)環(huán)境,編譯器,調試器等
3. BCL(Base Class Library,基類庫),這個是.NET Framework使用的一個統(tǒng)一的大類庫,和Java的類庫的概念相似。
.NET語言的編譯器接到源代碼文件后,首先生成名字為"程序集(assembly)"的輸出文件。它可以是可執(zhí)行文件或者DLL。程序集中的代碼并不是本機代碼(這一點和Java源代碼編譯成.class文件比較像),而是一種成為CIL(Common Intermediate Language,公共中間語言)的中間語言。在運行的時候JIT編譯器(Just-in-Time)會負責將CIL的一部分編譯成本機代碼,然后CLR就可以在運行時對它進行管理了。
另外,這里還有2個術語需要了解下:托管代碼和非托管代碼。
托管代碼是.NET Framework編寫的代碼,需要CLR支持;而非托管代碼不需要受CLR控制,比如傳統(tǒng)的win32程序,它們并不是.NET程序。
最后一個概念是CLI(Common Language Infrastructure,公共語言基礎結構),它是一組標準,說明了如何組織.NET Framework的組件并構成一個內聚的、一致的系統(tǒng)。這個概念對開發(fā)者來說并不是很重要,只是簡單的了解一下即可。
CLI包括如下的組成部分:
1. CTS(Common Type System,公共類型系統(tǒng)),定義了在托管代碼中一定會使用的類型特征。包括一組內置類型,還有類型的公共基類"object"等。
2. CLS(Common Language Specification,公共語言規(guī)范),定義了一個.NET兼容編程語言的規(guī)則,行為等。
C#和.NET Framework的基本內容就向你介紹到這里,希望對你了解和學習C#和.NET Framework有所幫助。
【編輯推薦】