C#與.net的關系


 .net和c#的關系其實簡單,.net是c#的運行環境,而c#只是.net的其中一個組成部分中的一種情況。具體來講,.net包括架構(Framework)、語言(VB,C++,C#,Jscript和J#等)和工具(Visual Studio)。

.net的架構(Framework)具有兩個重要的組件:公共語言運行庫(Common Language Runtime)和.net Framework的類庫。公共語言運行庫則是.net架構的基礎,它可以被看做一個倉庫管理員,負責提供內存管理,線程管理和遠程處理等核心服務。而類庫可以看作是倉庫中不同的儲存區域的貨物,可以根據不同的需要被使用。其實,類庫非常豐富,常用的有system,system.data, system.web, system.windows.form, system.collections.generic等,這些都是在程序編寫中不可缺少的“貨物”。

語言就再簡單不過了,也就是用來描述表達算法思想的基本元素,C#只是.net眾多語言的一種。

工具其實更准確的應該叫集成開發環境Integrated development environment,通過這個工具,程序猿可以進行程序的編寫,調試,發布等等。Visual Studio作為最強大的集成開發工具之一使用非常方便。具體自行百度或者谷歌。

說了這么多,那么程序到底是怎么練成的?最后怎樣在電腦上運行的呢?(以window桌面應用為例)答:cs---->中間語言(.exe或者dll文件)---->即時編譯器(即時編譯成本機代碼,進行執行)

C#的源文件也就是后綴名為cs的文件經過集成開發工具的編譯產生中間語言,它包含程序的中間指令Common intermediate Language和元信息,其中元信息包含類型信息和安全信息。中間語言最終在本機上被即時編譯成本機可運行的代碼就可以執行了。

 

補充:exe和dll的區別。

  • exe文件是executable file,譯作可執行文件,屬於可移植可執行PE文件,它可以加載到內存中,並由操作系統加載程序執行,是可以在操作系統存儲空間中浮動定位的可執行程序。(摘自百度百科)
  • dll是dynamic link library文件,又叫動態鏈接庫文件,它區別於靜態庫。靜態庫在程序的鏈接階段被復制到程序中,但是動態庫沒有被復制到程序中,只是在程序運行時由系統動態的加載到內存中供程序調用。這樣可執行文件在執行時,從dll中動態的獲取相關的類和方法,節約了可執行文件在編譯,執行時花費的時間。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM