国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#學習系列-.NET體系結構

2019-11-14 16:30:44
字體:
來源:轉載
供稿:網友

.NET框架概述

.NET 框架為.NET應用程序運行提供虛擬機環境,為.NET應用程序提供編譯、運行、內存管理、垃圾回收、安全等服務。

?

.NET框架組成部分

1.公共語言運行時(Common Language Runtime,CLR)

2.NET框架類庫(并非.NET框架中的所有類庫代碼都是純粹的托管代碼編寫的,.NET框架中有相當數量的類是對Win32 API的封裝)

?

托管代碼

使用.NET公共語言運行時提供的代碼,反之為非托管代碼(如 Win32 API)

?

通用語言組織框架(CLI Common Language Infrastructure)

規定如何在運行庫中聲明、使用和管理類型,同時也是運行庫支持跨語言互操作的一個重要組成部分

1.建立一個支持跨語言集成、類型安全和高性能代碼執行的框架

2.提供一個支持完整實現多種編程語言的面向對象模型

3.定義各個語言必須遵守的規則,有助于確保用不同語言編寫的對象能夠交互作用

?

公共語言運行時(CLR)

負責管理.NET應用程序編譯、運行、代碼類型安全檢查、內存分配、線程管理、安全、垃圾回收等服務,為.NET應用程序提供一個虛擬的運行環境

?

通用類型系統(CTS Common Type System)

CTS定義了一個類型庫,無論是VB還是C#,他們的數據類型都是一致的,因此.NET將各種不同的編程語言的數據類型進行抽象,就誕生了CTS。

CTS類型主要分為:值類型和引用類型 http://wenku.baidu.com/link?url=LHBzlpJ8zHnLvsNzcmGxjpGgOolfq721gDvoVTY7gtNHTUbmhf_Zv8z0GliZECRuyg020kqZhZEtWVawStyqJZGxAFoDSMvva411vNACau7

?

公共語言規范(CLS Common Language Specification)

CLS是CTS的子集,目標是讓.NET平臺上用不同的編程語言編寫的對象之間可以互相調用

?

CTS、CLR、CLS 三者關系如下:

?

值類型:存儲在內存的堆棧中,快速訪問,超出作用范圍自動釋放內存,垃圾回收機制不參與回收。

引用類型:分配在內存中,默認NULL ,在棧中分配內存的地址,操作時通過指針尋找,通過垃圾回收機制回收。將一個引用類型變量的內容賦值給另一個引用類型的變量時,只是變量的內存地址被拷貝。

?

裝箱:將值類型轉換成引用類型 int i=0; object o=i;

拆箱:將引用類型轉換為值類型 int i=0;object o=i;int j=(int)o;

裝箱和拆箱對性能損耗是有影響的。

?

即時編譯(JIT)

  1. 在編譯期:CLR對C#代碼進行一次編譯,生成中間代碼DLL或者EXE。
  2. 在運行期,CLR根據硬件環境使用JIT(即時編譯引擎),將中間代碼編譯為二進制代碼并執行。
  3. 編譯好的二進制代碼被存放到一個緩存區緩存,下次調用相同的代碼就直接從緩存區中調用,也就是說相同的代碼只會編譯一次。

    ?

NGEN(本機映像生成器)編譯

本機映像生成器(Ngen.exe)是一個提高托管應用程序性能的工具。Ngen.exe創建本機映像(包含經編譯的特定于處理器的機器代碼的文件),并將它們安裝到本地計算機上的本機映像緩存中。運行庫可從緩存中使用本機映像,而不是使用實時編譯器編譯原始程序集。

?

中間語言(MSIL 現在稱為CIL Common Intermediate Language)

?

參考《C#4.0權威指南》


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 衡阳市| 莱芜市| 商洛市| 祁阳县| 晋州市| 西充县| 弥勒县| 安国市| 仁布县| 两当县| 麻栗坡县| 精河县| 安庆市| 渝北区| 十堰市| 东山县| 离岛区| 怀化市| 磴口县| 陆丰市| 江华| 霞浦县| 且末县| 福鼎市| 洪雅县| 双流县| 双桥区| 商南县| 若羌县| 安塞县| 营山县| 盐源县| 布拖县| 上杭县| 余姚市| 阜康市| 浦江县| 湄潭县| 邯郸县| 佛坪县| 正蓝旗|