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

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

淺識(shí)C#

2019-11-10 23:26:17
字體:
供稿:網(wǎng)友

C#編程語言

C#是微軟公司在.NET框架之上而開發(fā)的一種編程語言。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ǔ)類庫(kù))。其他人已經(jīng)轉(zhuǎn)向COM(Component Object Model,組件對(duì)象模型)。

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

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

C#的制定

C#的制定目標(biāo):集成的、面向?qū)ο蟮拈_發(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組成。主要說說CLR和BCL。

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

BCL 全稱Base Class Library,基類庫(kù)。是.NET框架使用的一個(gè)大的類庫(kù)。(FCL是BCL的超級(jí),F(xiàn)CL框架類庫(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)存中刪除程序不在訪問的對(duì)象)。

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

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

編譯成CIL

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

編譯成本機(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í)行像釋放沒使用的內(nèi)存、檢查數(shù)組邊界、檢查參數(shù)類型和管理異常之類的任務(wù)。有兩個(gè)重要術(shù)語:托管代碼--為.NET框架編寫的代碼稱為托管代碼(managed code),需要CLR;非托管代碼--不在CLR控制之下運(yùn)行的代碼,比如win32 C/C++ DLL,稱為非托管代碼(unmanaged code)。

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

編譯和執(zhí)行

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

CLR

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

CLI

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

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

C#的一些縮寫和版本更新

縮寫:

版本更新:

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


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 西藏| 馆陶县| 茂名市| 沧州市| 油尖旺区| 罗山县| 永福县| 科尔| 武川县| 寿宁县| 青冈县| 文山县| 陆良县| 辽宁省| 武义县| 辽源市| 江华| 黄梅县| 营口市| 甘德县| 沈丘县| 贡山| 奉化市| 金乡县| 澳门| 昆明市| 金湖县| 大足县| 瓦房店市| 无棣县| 长顺县| 房产| 永泰县| 浑源县| 汽车| 米脂县| 司法| 新竹县| 怀仁县| 万荣县| 滁州市|