C#簡(jiǎn)介:VC的NET,JAVA的KILLER?
發(fā)表時(shí)間:2024-02-25 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]第一篇 C#簡(jiǎn)介:VC的NET,JAVA的KILLER? C#是在C,C++的基礎(chǔ)上發(fā)展起來的,是一種有網(wǎng)絡(luò)風(fēng)格,面向?qū)ο蟮目缯Z言平臺(tái)的程序設(shè)計(jì)語言。C#的編譯器輸出的代碼,可以稱為‘受控代碼’(MANAGED CODE),受控代碼并不能在目標(biāo)機(jī)器上直接運(yùn)行,它形成了一種文件,包含了與傳統(tǒng)計(jì)算...
第一篇 C#簡(jiǎn)介:VC的NET,JAVA的KILLER?
C#是在C,C++的基礎(chǔ)上發(fā)展起來的,是一種有網(wǎng)絡(luò)風(fēng)格,面向?qū)ο蟮目缯Z言平臺(tái)的程序設(shè)計(jì)語言。C#的編譯器輸出的代碼,可以稱為‘受控代碼’(MANAGED CODE),受控代碼并不能在目標(biāo)機(jī)器上直接運(yùn)行,它形成了一種文件,包含了與傳統(tǒng)計(jì)算機(jī)語言不同的語言:中間語言(INTERMEDIATE LANGUAGE)。同時(shí),C#編譯器又在該文件的各個(gè)數(shù)據(jù)類型前面直接插入了表示其相應(yīng)的變化屬性(METADATA),形成了一種可以移植執(zhí)行的文件。公共語言環(huán)境(COMMON LANGUAGE RUNTIME),再對(duì)中間語言IL代碼進(jìn)行編譯,最終產(chǎn)生可以在目標(biāo)機(jī)器上執(zhí)行的本地二進(jìn)制代碼。
C#沒有了C++的一些特性:沒有宏,模板,多重繼承,指針及許多重載的操作符,當(dāng)然還沒有全局函數(shù),全局變量,常量。每一樣?xùn)|西都得放在一個(gè)類中。你看,這些其實(shí)和JAVA的完全一樣!
當(dāng)然還有些不一樣的地方:整個(gè)C#的類模型是建立在.NET虛對(duì)象系統(tǒng)(VIRTUAL OBJECT SYSTEM)之上的。對(duì)象模型是基礎(chǔ)結(jié)構(gòu)(INFRASTRUCTURE)的一部分。C#遵守CLS, 在此基礎(chǔ)上,具有良好的兼容性:可以訪問老的COM組件對(duì)象,OLE自動(dòng)化,以及本地的API (它們通常是C格式的DLL)。在開發(fā)者需要使用指針時(shí),可以通過非安全代碼,不運(yùn)行在缺省的安全模式,來使用它們。在這種模式下,你得管理好自己的內(nèi)存,保證類型的安全。
了解了C#的大致原理,我們可以看出,它能夠?qū)崿F(xiàn)各種計(jì)算機(jī)語言的集成,面向網(wǎng)絡(luò)應(yīng)用,從而最終構(gòu)成微軟的.NET構(gòu)架。同時(shí),將我們的軟件開發(fā)帶入組件化的天地。