C#特點(diǎn)小結(jié)

姓名:于川皓 學(xué)號(hào):16140210089

轉(zhuǎn)載自:http://blog.sina.com.cn/s/blog_6cd824cd0102w78e.html

【嵌牛導(dǎo)讀】:C#是一種能夠廣泛應(yīng)用的編程語言,那么它有什么特點(diǎn)呢?

【嵌牛鼻子】:編程語言,程序設(shè)計(jì)

【嵌牛提問】:C#語言的優(yōu)點(diǎn),缺點(diǎn)分別是什么?

【嵌牛正文】:寫C#的人以前就是Borland 的 Anders Hejlsberg,C#的架構(gòu)者,可以說是Delphi之父.

C#語言自C/C++演變而來。但是,它現(xiàn)代、簡(jiǎn)單、完全面向?qū)ο蠛皖愋桶踩?。如果您是C/C++程序員,學(xué)習(xí)曲線將會(huì)很平坦。許多C#語句直接借用您所喜愛的語言,包括表達(dá)式和操作符。假如不仔細(xì)看,簡(jiǎn)直會(huì)把它當(dāng)成C++。

C#不僅僅是一門語言,? C#更多的是它背后所依附的.Net平臺(tái)。C#完全就是為.Net而生,他的許多特性只有在.net中才能發(fā)揮威力。C#之于.NET,就像Java之于Java類庫(kù),Object? Pascal之于VCL一樣(不管你愛不愛聽,Object? Pascal確實(shí)已經(jīng)淪為了VCL的專用實(shí)現(xiàn)語言了,它里面有很多特性都是為了更好的實(shí)現(xiàn)VCL而添加的)。

C++則是一門語言,而且只是一門語言,它有一個(gè)標(biāo)準(zhǔn)庫(kù)STL,但STL本身卻不能幫助你實(shí)現(xiàn)任何平臺(tái)相關(guān)的東西。那一切需要你自己去做。也正因?yàn)槿绱?,C++沒有被捆綁在任何專用平臺(tái)和專用領(lǐng)域,它作為一門語言,可以作幾乎所有的事情,只要你給它一個(gè)合適的平臺(tái)。

拿一個(gè)平臺(tái)和一門語言比,本身就不公平。而且,也不存在誰好誰壞的問題。如果你需要在特定領(lǐng)域開發(fā),那么,象.net這樣的平臺(tái)可以幫你省下不少心思,如果你想不局限于一個(gè)平臺(tái),那么,單純只是一門語言的C++則會(huì)讓你心服口服。

至于C++? Builder(我們不如說是VCL,拿框架跟框架比更公平些),本身VCL和.NET都出自同一人之手,我們應(yīng)該想到他們的本質(zhì)差別不會(huì)很大。但是,作為后來者的.NET,一定會(huì)加入一些新的東西使得自己更加強(qiáng)大。

但是在我看來,.NET無論如何顯得太年輕了一些,也許以后他會(huì)無處不在,但不是現(xiàn)在。

優(yōu)點(diǎn):

關(guān)于C#最重要的一點(diǎn):它是現(xiàn)代的編程語言。它簡(jiǎn)化和現(xiàn)代化了C++在類、名字空間、方法重載和異常處理等領(lǐng)域。屏棄了C++的復(fù)雜性,使它更易用、更少出錯(cuò)。

對(duì)C#的易用有貢獻(xiàn)的是減少了C++的一些特性,不再有宏、模板和多重繼承。特別對(duì)企業(yè)開發(fā)者來說,上述功能只會(huì)產(chǎn)生更多的麻煩而不是效益。使編程更方便的新功能是嚴(yán)格的類型安全、版本控制、垃圾收集(garbage collect)等等。所有的這些功能的目標(biāo)都是瞄準(zhǔn)了開發(fā)面向組件的軟件。

在繼續(xù)呈現(xiàn)出更多的功能之前,我想停下來并在下面說明C#至關(guān)重要的各種要素。

簡(jiǎn)單 , 現(xiàn)代 ,面向?qū)ο?,類型安全 ,版本控制 ,兼容,靈活

1.簡(jiǎn)單

C#具有C++所沒有的一個(gè)優(yōu)勢(shì)就是學(xué)習(xí)簡(jiǎn)單。該語言首要的目標(biāo)就是簡(jiǎn)單。很多功能(還不如說是缺少了C++的一些功能)有助于C#全方位的簡(jiǎn)單。

在C#中,沒有C++中流行的指針。默認(rèn)地,您工作在受管理的代碼中,在那里不允許如直接存取內(nèi)存等不安全的操作。我想沒有C++程序員可以聲稱,從沒有使用指針訪問過不屬于他們的內(nèi)存。

與指針"戲劇性"密切相關(guān)的是"愚蠢的"操作。在C++中,有::、.、和->操作符,它們用于名字空間、成員和引用。對(duì)于新手來說,操作符至今仍是學(xué)習(xí)的一道難關(guān)。C#棄用其它操作符,僅使用單個(gè)操作符 "."?,F(xiàn)在一個(gè)程序員所需要理解的就是嵌套名字的注解了。

您不必記住基于不同處理器架構(gòu)的隱含的類型,甚至各種整型的變化范圍。C#使用統(tǒng)一的類型系統(tǒng),屏棄了C++多變的類型系統(tǒng)。這種系統(tǒng)充許您把各種類型作為一個(gè)對(duì)象查看,它是一個(gè)原始類型還是一個(gè)full-blown 類。和其它編程語言相比,由于加框(boxing)和消框(unboxing)的機(jī)制,把簡(jiǎn)單類型當(dāng)作對(duì)象處理并不能獲得性能的改善。稍后將詳細(xì)解釋加框和消框,但基本上僅當(dāng)需要時(shí)才使用對(duì)象訪問簡(jiǎn)單類型這種技術(shù)。

首先,老練的程序員可能不喜歡它,但是整型和布爾型如今終歸是兩種完全不同的數(shù)據(jù)類型。這就意味著原來if語句中錯(cuò)誤的賦值現(xiàn)在會(huì)被編譯出錯(cuò),因?yàn)閕f語句只接受布爾類型的值。再也不會(huì)出現(xiàn)誤用賦值符為比較符這樣的錯(cuò)誤!

C#同時(shí)也解決了存在于C++中已經(jīng)有些年頭的多余東西(redundancies)。這種多余包括常數(shù)預(yù)定義,不同字符類型等。鑒于多余表單已經(jīng)從該語言中消失,故一般在C#中都可以使用表單了。

2.現(xiàn)代

您投入學(xué)習(xí)C#的努力是一筆大投資,因?yàn)镃#是為編寫NGWS 應(yīng)用程序的主要語言而設(shè)計(jì)。您將會(huì)發(fā)現(xiàn)很多自己用C++可以實(shí)現(xiàn)或者很費(fèi)力實(shí)現(xiàn)的功能,在C#中不過是一部分基本的功能而已。對(duì)于企業(yè)級(jí)的編程語言來說,新增的金融數(shù)據(jù)類型很受歡迎。您用到了一種新的十進(jìn)制數(shù)據(jù)類型,它專用于金融計(jì)算方面。如果不喜歡這種現(xiàn)成簡(jiǎn)單的類型,根據(jù)您應(yīng)用程序的特殊需求,可以很容易地創(chuàng)建出新的一種數(shù)據(jù)類型。

我已經(jīng)提到,指針不再是您編程武器的一部分。不要太驚訝,全面的內(nèi)存管理已經(jīng)不是您的任務(wù)。運(yùn)行時(shí)NGWS提供了一個(gè)垃圾收集器,負(fù)責(zé)C#程序中的內(nèi)存管理。因內(nèi)存和應(yīng)用程序都受到管理,所以很必要增強(qiáng)類型安全,以確保應(yīng)用的穩(wěn)定性。

對(duì)于C++程序員,異常處理的切不是新的東西,但它是C#的主要功能。C#的異常處理與C++的不同點(diǎn)在于它是交叉語言的(運(yùn)行時(shí)的另一個(gè)功能)。在沒有C#之前,您必須處理怪異的HRESULTs,但現(xiàn)在由于使用了基于異常的健壯的出錯(cuò)處理,這一切都結(jié)束了。

對(duì)于現(xiàn)代的應(yīng)用程序,安全是首要的,C#也不會(huì)例外。它提供了元數(shù)據(jù)語法,用于聲明下述NGWS安全模式的能力和許可。元數(shù)據(jù)是NGWS運(yùn)行時(shí)的一個(gè)關(guān)鍵的概念,下一章將涉及到它更深的含義。

3.面向?qū)ο?/p>

您不會(huì)預(yù)料一種新語言不支持面向?qū)ο蟮墓δ馨? C#當(dāng)然支持所有關(guān)鍵的面向?qū)ο蟮母拍?,如封裝、繼承和多態(tài)性。完整的C#類模式構(gòu)建在NGWS運(yùn)行時(shí)的虛擬對(duì)象系統(tǒng)(VOS,Virtual Object System)的上層,VOS將在下章描述。對(duì)象模式只是基礎(chǔ)的一部分,不再是編程語言的一部分。

您一開始必須關(guān)注的事,就是不再有全局函數(shù)、變量或者是常量。所有的東西都封裝在類中,包括事例成員(通過類的事例--對(duì)象可以訪問)或都靜態(tài)成員(通過數(shù)據(jù)類型)。這些使C#代碼更加易讀且有助于減少潛在的命名沖突。

定義類中的方法默認(rèn)是非虛擬的(它們不能被派生類改寫)。主要論點(diǎn)是,這樣會(huì)消除由于偶爾改寫方法而導(dǎo)致另外一些原碼出錯(cuò)。要改寫方法,必須具有顯式的虛擬標(biāo)志。這種行為不但縮減速了虛擬函數(shù)表,而且還確保正確版本的控制。

使用C++編寫類,您可以使用訪問權(quán)限(access modifiers) 給類成員設(shè)置不同的訪問等級(jí)。C#同樣支持private、protected 和public 三種訪問權(quán)限,而且還增加了第四種:internal。有關(guān)訪問權(quán)限。

您曾經(jīng)創(chuàng)建了多少個(gè)類是從多基類派生出來的(ATL 程序員,您的投票不計(jì)在內(nèi)!) ? 大多數(shù)情況,僅需從一個(gè)類派生出。多基類惹出的麻煩通常比它們解決的問題還多。那就是為什么C#僅允許一個(gè)基類。如果您覺得需要多重繼承,可以運(yùn)用接口。

一個(gè)可能出現(xiàn)的問題:在C#中不存在指針,如何模仿它? 這個(gè)問題的答案很有代表性,它提供了對(duì)NGWS運(yùn)行時(shí)事件模式的支持。再次,我將把對(duì)它的全面解釋放到第五章。

4.類型安全

我再次選指針作為一個(gè)例子。在C++中擁有一個(gè)指針,您能自由地把它強(qiáng)制轉(zhuǎn)換成為任何類型,包括干出諸如把一個(gè)int*(整型指針)強(qiáng)制轉(zhuǎn)換成一個(gè)double *(雙精度指針)這樣的傻事。只要內(nèi)存支持這種操作,它就"干過"。這并不

您正在看的asp教程是:展現(xiàn)C#(1)C#介紹。是您所想象的企業(yè)級(jí)編程語言的類型安全。

綱要性的問題,C#實(shí)施最嚴(yán)格的類型安全,以保護(hù)自己及垃圾收集器(garbage collector)。所以必須遵守C#中一些相關(guān)變量的規(guī)則:您不能使用沒有初始化的變量。對(duì)于對(duì)象的成員變量,編譯器負(fù)責(zé)清零。而局部變量,則由您負(fù)責(zé)清零。當(dāng)您使用一個(gè)沒有初始化的變量時(shí),編譯器會(huì)教您怎么做。優(yōu)點(diǎn)是能夠避免由于使用不經(jīng)初始化的變量計(jì)算結(jié)果而導(dǎo)致的錯(cuò)誤,而您還不知道這些奇怪的結(jié)果是如何產(chǎn)生的。

C#取消了不安全的類型轉(zhuǎn)換。不能把一個(gè)整型強(qiáng)制轉(zhuǎn)換成一個(gè)引用類型(如對(duì)象),而當(dāng)向下轉(zhuǎn)換時(shí),C#驗(yàn)證這種轉(zhuǎn)換是正確的。(也就是說,派生類真的是從向下轉(zhuǎn)換的那個(gè)類派生出來的。)

邊界檢查是C#的一部分。再也不會(huì)出現(xiàn)這種情況:當(dāng)數(shù)組實(shí)際只定義了n-1個(gè)元素,卻超額地使用了n個(gè)元素。

算術(shù)運(yùn)算有可能溢出終值數(shù)據(jù)類型的范圍。C#允許在語句級(jí)或應(yīng)用程序級(jí)檢測(cè)這些運(yùn)算。在允許檢測(cè)溢出的情況下,當(dāng)溢出發(fā)生時(shí)將會(huì)拋出一個(gè)異常。在C#中,被傳遞的引用參數(shù)是類型安全的。

5.版本可控(Versionable)

在過去的幾年中,幾乎所有的程序員都至少有一次不得不涉及到眾所周知的"DLL地獄"。該問題起因于多個(gè)應(yīng)用程序都安裝了相同DLL名字的不同版本。有時(shí),老版本的應(yīng)用程序可以很好地和新版本的DLL一起工作,但是更多的時(shí)候它們會(huì)中斷運(yùn)行?,F(xiàn)在的版本問題真是令人頭痛。

就象您將在第八章"用C#寫組件"所看到的,NGWS runtime 將對(duì)您所寫的應(yīng)用程序提供版本支持。C#可以最好地支持版本控制。盡管C#不能確保正確的版本控制,但是它可以為程序員保證版本控制成為可能。有這種支持,一個(gè)開發(fā)人員就可以確保當(dāng)他的類庫(kù)升級(jí)時(shí),仍保留著對(duì)已存在的客戶應(yīng)用程序的二進(jìn)制兼容。

6.兼容

C#并沒有存在于一個(gè)封閉的世界中。它允許使用最先進(jìn)的NGWS的通用語言規(guī)定(Common Language Specification,簡(jiǎn)寫為CLS)訪問不同的API。CLS規(guī)定了一個(gè)標(biāo)準(zhǔn),用于符合這種標(biāo)準(zhǔn)的語言的內(nèi)部之間的操作。為了加強(qiáng)CLS的編譯,C#編譯器檢測(cè)所有的公共出口編譯,并在通不過時(shí)列出錯(cuò)誤。

當(dāng)然,您也想能夠訪問舊一點(diǎn)的COM對(duì)象。NGWS運(yùn)行時(shí)提供對(duì)COM透明的訪問。如何集成原來的代碼將在第10章"非管理代碼的內(nèi)部操作"有介紹。

OLE 自動(dòng)化是一種特殊的動(dòng)物。任一個(gè)使用C++創(chuàng)建OLE自動(dòng)化項(xiàng)目的人已經(jīng)喜歡上各種各樣的自動(dòng)化數(shù)據(jù)類型。有個(gè)好消息就是C#支持它們,而沒有煩鎖的細(xì)節(jié)。

最后,C#允許您 用C 原型的API進(jìn)持內(nèi)部操作??梢詮哪膽?yīng)用程序訪問任何DLL中的入口點(diǎn)(有C的原型)。用于訪問原始API的功能稱作平臺(tái)調(diào)用服務(wù)(Plaform Invocation Services ,縮寫PInovke),第10章將展示使用C API進(jìn)行內(nèi)部操作的一些例子。

7.靈活

上一部分的最后一段有可能提醒了程序員。您可能會(huì)問:"難道就沒有我要傳遞指針的API嗎?" 您是正確的。不是僅有少數(shù)的這種API,而是很多(有點(diǎn)保守的估計(jì))。這種對(duì)原始WIN32代碼的訪問有時(shí)導(dǎo)致對(duì)非安全類指定指針的使用(盡管它們中的一些由于受COM和PInvoke的支持可以解決)。

盡管C#代碼的缺省狀態(tài)是類型安全的,但是您可以聲明一些類或者僅聲明類的的方法是非安全類型的。這樣的聲明允許您使用指針、結(jié)構(gòu),靜態(tài)地分配數(shù)組。安全碼和非安全碼都運(yùn)行在同一個(gè)管理空間,這樣暗示著當(dāng)從安全碼調(diào)用非安全碼時(shí)不會(huì)陷入列集(marshaling)。

8. 小結(jié)

C#語言從C和C++演變而來,它是給那些愿意犧牲C++一點(diǎn)底層功能,以獲得更方便和更產(chǎn)品化的企業(yè)開發(fā)人員而創(chuàng)造的。C#現(xiàn)代、簡(jiǎn)單、面向?qū)ο蠛皖愋桶踩?。盡管它借鑒了C和C++的許多東西,但是在一些諸如名字空間、類、方法和異常處理等特定領(lǐng)域,它們之間還存在著巨大的差異。

C#為您提供了方便的功能,如垃圾收集、類型安全、版本控制,等等。僅有的"代價(jià)"就是,代碼操作默認(rèn)是類型安全的,不允許指針。光是類型安全就可以搞定了。但是,如果您需要指針,仍可以通過非安全碼使用它們,而且當(dāng)調(diào)用非安全碼時(shí),不能含有列集。

缺點(diǎn)

雖然用C#編程簡(jiǎn)單了!

可是用C#編寫的程序必須運(yùn)行在.NET平臺(tái)。

但是現(xiàn)在的用戶機(jī)器上大部分是沒安裝.NET平臺(tái)。

也就是用C#編寫的程序大部分用戶是不能用的!

也許微軟的新操作系統(tǒng)出來了就可以了!

微軟對(duì)C#和.NET介紹中的一些有趣的漏洞。MSIL是.NET提供的一個(gè)新特性,允許很流行的程序設(shè)計(jì)語言編譯到一個(gè)單獨(dú)的公用語言。(.NET支持的語言種類是相當(dāng)驚人的)。這些語言都要服從一種叫“通用語言規(guī)范(CLS)”的構(gòu)架。微軟稱之為“CLS兼容語言和類庫(kù)之間可互操作的通用語言”。

編譯所有的語言到一個(gè)單一的公用語言上,能讓“繼承”通過多重語言真正執(zhí)行。這輕而易舉的掃除了C#可能遇到的錯(cuò)誤概念。.NET組件使用COM的IDispatch,它只允許接口執(zhí)行。它比先前C#被評(píng)定為一種OOP語言的看法容易接受得多。它在程序設(shè)計(jì)上或許像Java一樣是面向?qū)ο蟮摹?/p>

但不幸的是CLS這種包括MSIL的共享語言基礎(chǔ),只讓RAD開發(fā)者受益,而損害了硬件的核心開發(fā)者,有人認(rèn)為創(chuàng)造一種新程序設(shè)計(jì)語言的目的就是有能力充分運(yùn)用它和服務(wù)于可微調(diào)的執(zhí)行能力,這一點(diǎn)在CLS世界里是做不到的。老實(shí)說,加速充分利用從來不是許多語言的唯一目標(biāo)。許多語言的唯一目標(biāo)(最矚目的是像Visual Basic和Java的RAD語言)是加速和美化開發(fā)和展開能力,而不僅僅是運(yùn)行時(shí)刻的速度。

舒密特文章中所提到的確實(shí)包含了相關(guān)和值得注意的評(píng)論:你可以用C++指定.NET,并在你的代碼中運(yùn)用所有C++特性。同時(shí),因?yàn)?NET在運(yùn)行時(shí)刻不能檢驗(yàn)C++代碼是否安全,此語言并不遵從CLS規(guī)范,里面所書寫的程序也受到限制。作為應(yīng)對(duì),微軟往Visual C++里添加非標(biāo)準(zhǔn)管理的擴(kuò)展。用這些擴(kuò)展寫的代碼能符合CLS規(guī)范。

C#將把微軟領(lǐng)向何方就一目了然了。因?yàn)樗许?xiàng)目編寫會(huì)只依靠MSIL和CLS JIT編譯程序。這樣C#或任何MSIL前端語言比Java任何時(shí)候都快。但很不幸,程序設(shè)計(jì)和編譯程序級(jí)的優(yōu)化不能在非微軟的平臺(tái)上充分利用,想在非Windows平臺(tái)上展開.NET,再充分運(yùn)用它們也是不現(xiàn)實(shí)的。

JAVA是C#的競(jìng)爭(zhēng)對(duì)手? 盡管.NET是微軟一手締造的,它并不是只能在Windows上使用。微軟準(zhǔn)備盡力為那些COM對(duì)象提供傳統(tǒng)幫助(所有的OLE, ActiveX等等在下一代Viual Studio推出后,都將成為一個(gè)legacy平臺(tái))。但.NET不會(huì)圍繞COM建造。新平臺(tái)無疑將補(bǔ)充COM,并與它幾乎天衣無縫地配合,但一點(diǎn)也不會(huì)依靠COM。這表明這種結(jié)構(gòu)本身能夠Macintosh, UNIX. BeOX展開。這樣命名,是因?yàn)槌薈LS構(gòu)架是平臺(tái)獨(dú)立的,C#將用到的和所有遵從CLS的數(shù)據(jù)庫(kù)也是平臺(tái)獨(dú)立的。也就是說,它們都是遵從CLS的,如果一個(gè)本機(jī)MSIL編譯程序在平臺(tái)上有效,那么它們能在運(yùn)行時(shí)刻為任何結(jié)構(gòu)進(jìn)行編譯。微軟也積極爭(zhēng)取被ECMA標(biāo)準(zhǔn)接納,他們先前的Javascript已被接納。當(dāng)Visual Studio. NET推出時(shí),開發(fā)團(tuán)體肯定會(huì)有不同的反應(yīng)。"微軟又開發(fā)了一個(gè)新平臺(tái)",這已嚇倒那些本來對(duì)微軟平臺(tái)統(tǒng)治憂心忡忡的人了。然而更重要的是C#或.NET戰(zhàn)略不會(huì)對(duì)原始C++構(gòu)成太大威脅,那么有理由推論C#和.NET將是Java的有力競(jìng)爭(zhēng)者??紤]相反方面:Java VM靠翻譯字節(jié)碼來運(yùn)行應(yīng)用程序。CLS在運(yùn)行時(shí)刻本機(jī)編譯。Java平臺(tái)只支持Java語言。.NET只支持MSIL,但一些無限制的高級(jí)語言如C#,Visual Basic,甚至Eiffel和COBOL都能啟動(dòng)MSIL。Java運(yùn)用執(zhí)行轉(zhuǎn)接提供真正的OOP技術(shù)。

MSIL,C#也是如此。在Java平臺(tái),簡(jiǎn)單地移動(dòng)平級(jí)文件,項(xiàng)目就可以展開為產(chǎn)品目錄。據(jù)說,.NET平臺(tái)的項(xiàng)目也可輕松展開而不像以registry-happy Com為基礎(chǔ)的項(xiàng)目?;蛟SJava平臺(tái)真正的優(yōu)勢(shì)只在于政治上的正確性--它不是微軟搞出來的,且目前有成千上萬的執(zhí)著的宗教追隨者。

(引:一位VB程序設(shè)計(jì)師的個(gè)人看法)雖然我很了解Java和C#,我仍被冠以高級(jí)Visual Basic程序設(shè)計(jì)師的稱號(hào)。人們會(huì)認(rèn)為我這樣一個(gè)VB設(shè)計(jì)師將是反對(duì)微軟的偏執(zhí)狂。但我也得面對(duì)現(xiàn)實(shí)。老實(shí)說:VB是一個(gè)RAD開發(fā)工具。別只顧著精美,別記著真正的對(duì)象。迅速得到結(jié)果才是重中之重。在商業(yè)世界里,純粹的技術(shù)和結(jié)果不總是能相吻合的,短期結(jié)果往往勝過長(zhǎng)期生產(chǎn)力。這是不幸的,但在許多公司中,這卻是事實(shí)。這些公司就是C#的主要用戶。我會(huì)使用C#嗎?當(dāng)然會(huì)用!我現(xiàn)在使用Visual Basic,但轉(zhuǎn)入C#有何不好?我更欣賞Java和OOP語言的精美,但因?yàn)槲疫M(jìn)行的所有項(xiàng)目中,短期成果一直勝過長(zhǎng)期成果,我已沒有時(shí)間去考慮替換Windows平臺(tái)。但如從純技術(shù)和信仰角度來說,Java和C++的程序設(shè)計(jì)師就有足夠理由關(guān)注C#,這是微軟維持壟斷的又一招。

最后,C#是好還是不好?那么,因?yàn)檫@里的“繼承”指對(duì)接口界面的再執(zhí)行,所以,它不是真正的OOP。如果你是微軟,亦或如果你依靠微軟技術(shù)而不準(zhǔn)備切換平臺(tái),那C#是很棒的,并將為VB程序設(shè)計(jì)師們搬運(yùn)Java和C++上的技巧提供很好的基礎(chǔ)(因?yàn)檎Z法是共享的)。但因?yàn)槲④泴⑷ν瞥鯟#,所以,Java和C++的擁護(hù)者們肯定會(huì)設(shè)計(jì)出新的語言,予以還擊。同時(shí),C#不一定可轉(zhuǎn)移到其他平臺(tái),也不能真正體現(xiàn)OOP的價(jià)值,甚至對(duì)OOP的初學(xué)者有害無益。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • TITLE: 編程語言亂燉 碼農(nóng)最大的煩惱——編程語言太多。不是我不學(xué)習(xí),這世界變化快! 有時(shí)候還是蠻懷念十幾、二...
    碼園老農(nóng)閱讀 5,602評(píng)論 2 35
  • 1. [C#語言基礎(chǔ)]請(qǐng)簡(jiǎn)述拆箱和裝箱。 答: 裝箱操作: 值類型隱式轉(zhuǎn)換為object類型或由此值類型實(shí)現(xiàn)的任何...
    胤醚貔貅閱讀 4,989評(píng)論 1 28
  • 基礎(chǔ) .NET概述 參考:http://www.cnblogs.com/yplong/p/3279934.html...
    donite閱讀 1,733評(píng)論 0 8
  • 喝過一口海水 手捧著只剩幾口 知道你是要喝苦水的 惡心才是我活的意義 喝過一口海水 手捧著還差幾口 孩子總是要嘗那...
    江佑停閱讀 310評(píng)論 1 1
  • 吳蕙蘭閱讀 232評(píng)論 0 0

友情鏈接更多精彩內(nèi)容