執(zhí)行環(huán)境CLR(Common Language Runtime,公共語(yǔ)言運(yùn)行庫(kù))。CLR在運(yùn)行期管理程序的執(zhí)行恶耽,包括以下內(nèi)容。
★代碼安全驗(yàn)證
★內(nèi)存管理
★代碼的執(zhí)行
★垃圾收集
編程工具包含了編程和調(diào)試需要的一切颜启,如:
★Visual Studio集成開(kāi)發(fā)環(huán)境
BCL(Base Class Library,基類(lèi)庫(kù))是.NET下的一個(gè)很強(qiáng)大的類(lèi)庫(kù)偷俭,你可以在開(kāi)發(fā)的時(shí)候使用它。它是(FCL FrameWork Class Library-框架類(lèi)庫(kù))的子集,不要蒙了农曲。
?當(dāng)你寫(xiě)好一個(gè)C#程序時(shí),通過(guò)編譯器社搅,也就是Visual Studio中的"生成",會(huì)產(chǎn)生一個(gè).dll或者.exe的代碼文件,他被稱為程序集乳规。
?程序集中包含:1.CIL(Common Intermediate Language,公共中間語(yǔ)言)-還有兩個(gè)版本名稱(IL和MSIL)2.程序中使用的類(lèi)型的元數(shù)據(jù)3.對(duì)其他程序集引用的元數(shù)據(jù)(就是你平常的添加引用)形葬。
?當(dāng)你執(zhí)行exe文件,調(diào)用dll程序集的時(shí)候(通常都是直接點(diǎn)的"啟動(dòng)",或者找到bin目錄下的exe文件),這是JIT(just-in-time即時(shí)編譯器)就將部分CIL代碼轉(zhuǎn)換為本機(jī)代碼,(被緩存起來(lái)暮的,方便后來(lái)的程序執(zhí)行)笙以,供操作系統(tǒng)執(zhí)行。期間冻辩,CLR管理JIT編譯的本機(jī)代碼猖腕。
?這時(shí)出現(xiàn)了托管與非托管的概念拆祈,由一張圖表示。
?每一種編程語(yǔ)言都會(huì)有自己內(nèi)置的類(lèi)型,像什么浮點(diǎn)型啊倘感,整型啊放坏,字符串等一系列的類(lèi)型。歷史上老玛,這些都是每個(gè)開(kāi)發(fā)語(yǔ)言不通的淤年,我們需要一致性,讓各個(gè)語(yǔ)言有很好的協(xié)作性蜡豹,就誕生了一組標(biāo)準(zhǔn)麸粮。
?CLI(Common Language Infrastructure,公共語(yǔ)言基礎(chǔ)結(jié)構(gòu))。CLI和C#都已經(jīng)被Ecma批準(zhǔn)為開(kāi)放的國(guó)際標(biāo)準(zhǔn)規(guī)范镜廉。Ecma成員--微軟弄诲、IBM、Adobe娇唯、惠普......
我們初學(xué)只需了解CLI中的兩點(diǎn):
1.CTS(Common Type System齐遵,公共類(lèi)型系統(tǒng))定義了那些在托管代碼中一定會(huì)使用的類(lèi)型的特征。
???? CTS最重要的特征之一就是所有的類(lèi)型都必須直接或間接的繼承自公共基類(lèi)----Object视乐。
2.CLS(Common Language Specification洛搀,公共語(yǔ)言規(guī)范)詳細(xì)說(shuō)明了一個(gè).NET兼容編程語(yǔ)言的規(guī)則、屬性和行為佑淀。