
執(zhí)行環(huán)境CLR(Common Language Runtime,公共語言運行庫)。CLR在運行期管理程序的執(zhí)行,包括以下內(nèi)容。
★代碼安全驗證
★內(nèi)存管理
★代碼的執(zhí)行
★垃圾收集
編程工具包含了編程和調(diào)試需要的一切,如:
★Visual Studio集成開發(fā)環(huán)境
BCL(Base Class Library,基類庫)是.NET下的一個很強大的類庫,你可以在開發(fā)的時候使用它。它是(FCL FrameWork Class Library-框架類庫)的子集,不要蒙了。

?當(dāng)你寫好一個C#程序時,通過編譯器,也就是Visual Studio中的"生成",會產(chǎn)生一個.dll或者.exe的代碼文件,他被稱為程序集。
?程序集中包含:1.CIL(Common Intermediate Language,公共中間語言)-還有兩個版本名稱(IL和MSIL)2.程序中使用的類型的元數(shù)據(jù)3.對其他程序集引用的元數(shù)據(jù)(就是你平常的添加引用)。
?當(dāng)你執(zhí)行exe文件,調(diào)用dll程序集的時候(通常都是直接點的"啟動",或者找到bin目錄下的exe文件),這是JIT(just-in-time即時編譯器)就將部分CIL代碼轉(zhuǎn)換為本機(jī)代碼,(被緩存起來,方便后來的程序執(zhí)行),供操作系統(tǒng)執(zhí)行。期間,CLR管理JIT編譯的本機(jī)代碼。
?這時出現(xiàn)了托管與非托管的概念,由一張圖表示。

?每一種編程語言都會有自己內(nèi)置的類型,像什么浮點型啊,整型啊,字符串等一系列的類型。歷史上,這些都是每個開發(fā)語言不通的,我們需要一致性,讓各個語言有很好的協(xié)作性,就誕生了一組標(biāo)準(zhǔn)。
?CLI(Common Language Infrastructure,公共語言基礎(chǔ)結(jié)構(gòu))。CLI和C#都已經(jīng)被Ecma批準(zhǔn)為開放的國際標(biāo)準(zhǔn)規(guī)范。Ecma成員--微軟、IBM、Adobe、惠普......
我們初學(xué)只需了解CLI中的兩點:
1.CTS(Common Type System,公共類型系統(tǒng))定義了那些在托管代碼中一定會使用的類型的特征。
???? CTS最重要的特征之一就是所有的類型都必須直接或間接的繼承自公共基類----Object。
2.CLS(Common Language Specification,公共語言規(guī)范)詳細(xì)說明了一個.NET兼容編程語言的規(guī)則、屬性和行為。