程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 《CLR.via.C#第三版》第一部分讀書筆記(一),

《CLR.via.C#第三版》第一部分讀書筆記(一),

編輯:C#入門知識

《CLR.via.C#第三版》第一部分讀書筆記(一),


     最近開始仔細研讀《CLR.via.C#第三版》這本書。讀pdf文檔確實很累。建議有條件的朋友還是買書看吧。

     我的筆記用來記錄我對這本書的理解,簡化下邏輯,對每個部分我覺得是要點的進行歸納總結。特別基礎的東西不會做過多的闡述。

     第一部分講的是CLR基礎。

     首先還是重新說下CLR的概念:“CLR 是一個可由多種編程語言使用的“運行時”。可用任何編程語言來開發代碼,只要編譯器是面向CLR的就可以了”。這裡要重新解釋下“只要編譯器是面向CLR的就可以了”這句話。初學者一般不認同.net平台跨語言,或者說所謂的“跨語言”是在微軟推出的范圍內的語言。這個認識其實是錯誤的。任何語言都可以面向CLR來創建自己的編譯器。我們熟知的Iron Ruby、Perl、PHP都有面向CLR的編譯器。圖1-1展示了編譯源代碼文件的過程。

      

      比較重要的認知是CLR實際不和托管模塊一起工作,而是和程序集一起工作。程序集包含了托管模塊和資源文件等其它文件。

      IL(中間語言)可以使用匯編語言來寫。CLR中的JIT(just in time)也叫即時編譯器,裡面有個函數JITComplier(),此函數的職責是把要執行的方法的IL轉換成本地CPU指令。

      類中方法的調用過程:

      一個方法執行的時候總的來說會被調用兩次。(這裡暫定方法名為Test())

      第一次調用:

      JITCompiler()會把Test()方法的IL代碼編譯成本地CPU指令(此指令會被保存到一個動態分配的內存塊中),Test()方法在內存塊中會通過JITComplier執行一遍(包括查找方法的IL,驗證方法的IL,編譯,執行)。

      第二次調用:

      完全跳過JITCompiler(),Test()方法在內存中再執行一遍。

      兩次執行的過程如圖1-4,1-5所示:

      

     

     需要注意的是本地CPU指令是存儲到動態內存中的,一旦程序終止,本地CPU指令將會被丟棄。

     Debug版本和Release版本的區別本質上是IL代碼質量和JIT本地代碼質量是否經過優化。從性能上考慮,程序部署、發布,最好是用Release版本。

     這個部分還有程序打包、部署、程序集信息等內容。這裡就不闡述了。


CLR VIA C怎

第一次看感覺好難,但硬著頭皮看下去後,感覺又不是很難了,從這本書可以學習到更多的知識,用Keni的話,這是一本入門的書,因為讀完後,你會有很多的疑問,帶著這些......
 

CLR via C# 第三版電子書可以發份嘛?郵箱:10139713@qqcom

是這本,要的哈,加俺

《CLRviaC#》 作者:(美)瑞奇特著 頁數:778 出版日期:2010.09 簡介:本書針對CLR和.NET Framework 4.0進行深入、全面的探討,並結合實例介紹了如何利用它們進行設計、開發和調試。全書5部分29章。第Ⅰ部分介紹CLR基礎,第Ⅱ部分解釋如何設計類型,第Ⅲ部分...
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved