.NET體系結構

1、.NET編譯ide

     1.C#和.net的關係
         C#是一種語言,儘管它是用於生存面向.net環境的代碼,但它自己不是.net的一部分.net支持的一些特性,C#並不支持。而C#語言支持的另外一些特性,.net並支持(例如運算符重載)
     2..net編譯階段
          (1)把源代碼編譯成Microsoft中間語言(IL)
          (2)CLR把IL編譯成平臺專用的代碼。
          Microsoft中間語言試用數字代碼,能夠很是快速地轉換爲內部機器碼。
          優勢:平臺無關性,提升性能和語言的互操做性。
     3.JIT編譯
           JIT編譯並非把整個應用程序一次編譯,而是隻編譯它調用的那部分代碼。
           代碼編譯一次後,獲得的內部可執行代碼就存儲起來,知道退出應用程序爲止,
           這樣下次運行這部分代碼時,就不須要從新編譯了。
2、中間語言的特定
     1.面向對象和接口的支持
          (1) 用一種語言編寫的類應能繼承用另一種語言編寫的類。
          (2) 一個類應能包含另外一個類的實例,而無論它們是使用什麼語言編寫的。
          (3) 對象或者對象的引用應能在方法之間傳遞。
          (4) 在不一樣的語言之間調用方法時,應能在調試器中調試這些方法調用,
             即調試不一樣語言編寫的源代碼。
     2.相異值類型和引用類型
          值類型: 變量直接保存其數據
          引用類型:變量僅保存其存地址,對應的數據能夠在該地址中找到。
     通用類型定義一個內容豐富的類型層次結構,以下:
   

通用類型系統(CTS):保證不一樣語言直接數據類型的統一。
公共語言:(CLS) :和通用類型系統一塊兒確保語言的互操做性。
 
3、.net編譯工做原理圖
   

相關文章
相關標籤/搜索