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

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

淺識(shí)C#

2019-11-11 01:20:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

C#編程語(yǔ)言

C#是微軟公司在.NET框架之上而開(kāi)發(fā)的一種編程語(yǔ)言。C#的正確發(fā)音:See Sharp。

C#之前的Windows編程

20世界90年代末,在使用微軟平臺(tái)的Windows編程中,大多數(shù)程序員使用Visual Basic(VB)、C或C++。一些C和C++程序員在使用純Win32 API,但大多數(shù)人在使用MFC(Microsoft Foundation Class,微軟基礎(chǔ)類(lèi)庫(kù))。其他人已經(jīng)轉(zhuǎn)向COM(Component Object Model,組件對(duì)象模型)。

所有這些技術(shù)都有自己的問(wèn)題。純Win32 API不是面向?qū)ο蟮模沂褂盟墓ぷ髁勘仁褂肕FC的更大。MFC是面向?qū)ο蟮模撬鼌s不一致。COM概論簡(jiǎn)單,但代碼復(fù)雜且不夠優(yōu)雅。

所有這些編程技術(shù)還有一個(gè)共同的缺點(diǎn)就是它們主要是針對(duì)桌面程序,而沒(méi)有考慮到Internet開(kāi)發(fā)。

C#的制定

C#的制定目標(biāo):集成的、面向?qū)ο蟮拈_(kāi)發(fā)框架,一致且優(yōu)雅。

.NET

2002年,微軟發(fā)布了.NET框架的第一個(gè)版本。.NET框架是一種比MFC和COM編程技術(shù)更一致并面向?qū)ο蟮沫h(huán)境。它的特點(diǎn)有:

多平臺(tái) 可以在多種平臺(tái)上運(yùn)行,從服務(wù)器、桌面機(jī)到PDA,還能在移動(dòng)端運(yùn)行。

行業(yè)標(biāo)準(zhǔn) 該系統(tǒng)使用行業(yè)標(biāo)準(zhǔn)的通訊協(xié)議,比如xml、HTTP、SOAP、JSON和WSDL。

安全性 有更加安全的執(zhí)行環(huán)境。

.NET框架的組成

.NET框架由編程工具、CLR、BCL組成。主要說(shuō)說(shuō)CLR和BCL。

CLR 全稱(chēng)Common Language Runtime,公共語(yǔ)言運(yùn)行庫(kù)。主要包括的內(nèi)容有:內(nèi)存管理和垃圾收集,代碼安全驗(yàn)證,代碼執(zhí)行、線程管理及異常處理。

BCL 全稱(chēng)Base Class Library,基類(lèi)庫(kù)。是.NET框架使用的一個(gè)大的類(lèi)庫(kù)。(FCL是BCL的超級(jí),F(xiàn)CL框架類(lèi)庫(kù))。

C#的優(yōu)勢(shì)

面向?qū)ο?/u> CLR、BCL和C#完全是面向?qū)ο蟮模呒傻摹?/p>

GC垃圾收集 CLR有GC(Garbage Collector,垃圾收集器),能夠自動(dòng)管理內(nèi)存(GC自動(dòng)從內(nèi)存中刪除程序不在訪問(wèn)的對(duì)象)。

互操作性 .NET語(yǔ)言互操作性允許用不同的.NET語(yǔ)言編寫(xiě)的軟件模塊無(wú)縫的交互;允許.NET的代碼調(diào)用并非.NET的代碼,他可以使用標(biāo)準(zhǔn)Win32 DLL導(dǎo)出的純C函數(shù)的代碼;.NET框架還允許與COM進(jìn)行互操作。

基類(lèi)庫(kù) .NET提供了一個(gè)龐大的基礎(chǔ)類(lèi)庫(kù),稱(chēng)為基類(lèi)庫(kù)(Base Class Library,BCL)。(有時(shí)稱(chēng)為框架類(lèi)庫(kù)--Framwork Class Library,F(xiàn)CL)。

編譯成CIL

.NET語(yǔ)言的編譯器接受源代碼文件,并生成名為程序集的輸出文件。

編譯成本機(jī)代碼并執(zhí)行

程序的CIL直到它被調(diào)用運(yùn)行時(shí)才會(huì)被編譯成本機(jī)代碼。CLR執(zhí)行步驟:檢查程序集的安全特性;在內(nèi)存中分配空間;把程序集中的可執(zhí)行代碼發(fā)送給實(shí)時(shí)(Just-in-Time,JIT)編譯器,把其中的一部分編譯成本機(jī)代碼。

一旦CIL被編譯成本機(jī)代碼,CLR就在它運(yùn)行時(shí)管理它,執(zhí)行像釋放沒(méi)使用的內(nèi)存、檢查數(shù)組邊界、檢查參數(shù)類(lèi)型和管理異常之類(lèi)的任務(wù)。有兩個(gè)重要術(shù)語(yǔ):托管代碼--為.NET框架編寫(xiě)的代碼稱(chēng)為托管代碼(managed code),需要CLR;非托管代碼--不在CLR控制之下運(yùn)行的代碼,比如win32 C/C++ DLL,稱(chēng)為非托管代碼(unmanaged code)。

微軟公司還提供了一個(gè)稱(chēng)為本機(jī)映像生成器的工具Ngen,可以把一個(gè)程序集轉(zhuǎn)換成當(dāng)前處理器的本機(jī)代碼。經(jīng)過(guò)Ngen處理過(guò)的代碼免除了運(yùn)行時(shí)的JIT編譯過(guò)程。

編譯和執(zhí)行

無(wú)論原始文件的語(yǔ)言是什么,都遵循同樣的編譯和執(zhí)行過(guò)程。

CLR

.NET框架的核心組件就是CLR,它在操作系統(tǒng)的頂層,負(fù)責(zé)管理程序的執(zhí)行。

CLI

CLI(Common Language Infrastructure,公共語(yǔ)言基礎(chǔ)結(jié)構(gòu))把所有.NET框架的組件連結(jié)成一個(gè)內(nèi)聚的、一致的系統(tǒng)。

CLI主要由CTS(Common Type System,公共類(lèi)型系統(tǒng),定義了那些在拓公關(guān)代碼中一定會(huì)使用的類(lèi)型特征)、CLS(Common Language Specification,公共語(yǔ)言規(guī)范,詳細(xì)說(shuō)明了一個(gè).NET兼容編程語(yǔ)言的規(guī)則、屬性和行為,其主體包括數(shù)據(jù)類(lèi)型、類(lèi)結(jié)構(gòu)和參數(shù)傳遞)組成。

C#的一些縮寫(xiě)和版本更新

縮寫(xiě):

版本更新:

推薦書(shū)籍 C#圖解教程(C#5.0)第4版       【下載】


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 马鞍山市| 龙州县| 清远市| 江西省| 酉阳| 襄城县| 彰化市| 姜堰市| 太仓市| 景泰县| 根河市| 绥德县| 金川县| 年辖:市辖区| 双流县| 益阳市| 克东县| 玉屏| 进贤县| 鄢陵县| 岫岩| 丰县| 资源县| 桃园县| 桂平市| 沙坪坝区| 桦南县| 新宾| 通海县| 渭南市| 佛学| 留坝县| 望奎县| 富蕴县| 庆云县| 台山市| 江达县| 彰武县| 安阳县| 衡东县| 光泽县|