首頁 > 專家說

c#語言的特點是什么

來源:新能源網(wǎng)
時間:2024-08-17 13:28:19
熱度:

c#語言的特點是什么【專家解說】:C#語言的特點C#在帶來對應(yīng)用程序的快速開發(fā)能力的同時,并沒有犧牲C與C++程序員所關(guān)心的各種特性。它忠實地繼承了C和C++的優(yōu)點。如果你對C或C

【專家解說】:C#語言的特點 C#在帶來對應(yīng)用程序的快速開發(fā)能力的同時,并沒有犧牲C與C++程序員所關(guān)心的各種特性。它忠實地繼承了C和C++的優(yōu)點。如果你對C或C++有所了解,你會發(fā)現(xiàn)它是那樣的熟悉。即使你是一位新手,C#也不會給你帶來任何其它的麻煩,快速應(yīng)用程序開發(fā)(Rapid Application Development,RAD)的思想與簡潔的語法將會使你迅速成為一名熟練的開發(fā)人員。 正如前文所述,C#是專門為.NET應(yīng)用而開發(fā)出的語言。這從根本上保證了C#與.NET框架的完美結(jié)合。在.NET運行庫的支持下,.NET框架的各種優(yōu)點在C#中表現(xiàn)得淋漓盡致。讓我們來看看C#的一些突出的特點,相信在以后的學(xué)習(xí)過程中,你將會深深體會到“#”--“SHARP”的真正含義。 ●簡潔的語法 ●精心地面向?qū)ο笤O(shè)計 ●與Web的緊密結(jié)合 ●完整的安全性與錯誤處理 ●版本處理技術(shù) ●靈活性與兼容性 一、簡潔的語法 請原諒,雖然我們一再強(qiáng)調(diào)學(xué)習(xí)本書不需要任何的編程基礎(chǔ),但在這里還不得不提到C++。 在缺省的情況下,C#的代碼在.NET框架提供的“可操縱”環(huán)境下運行,不允許直接地內(nèi)存操作。它所帶來的最大的特色是沒有了指針。與此相關(guān)的是,那些在C++中被瘋狂使用的操作符(例如:“::”、“->”和“.,”)已經(jīng)不再出現(xiàn)。C#只支持一個“.”,對于我們來說,現(xiàn)在需要理解的一切僅僅是名字的嵌套而已。 C#用真正的關(guān)鍵字換掉了那些把活動模板庫(Active Template Library,ALT)和COM搞得亂糟糟的偽關(guān)鍵字,如OLE_COLOR、BOOL、VARIANT_BOOL、DISPID_XXXXX等等。每種C#操作符在.NET類庫中都有了新名字。 語法中的冗余是C++中的常見的問題,比如"const"和"#define"、各種各樣的字符類型等等。C#對此進(jìn)行了簡化,只保留了常見的形式,而別的冗余形式從它的語法結(jié)構(gòu)中被清除了出去。 二、精心地面向?qū)ο笤O(shè)計 也許你會說,從Smalltalk開始,面向?qū)ο蟮脑掝}就始終纏繞著任何一種現(xiàn)代程序設(shè)計語言。的確,C#具有面向?qū)ο蟮恼Z言所應(yīng)有的一切特性:封裝、繼承與多態(tài)性,這并不出奇。然而,通過精心地面向?qū)ο笤O(shè)計,從高級商業(yè)對象到系統(tǒng)級應(yīng)用,C#建造廣泛組件的絕對選擇。 在C#的類型系統(tǒng)中,每種類型都可以看作一個對象。C#提供了一個叫做裝箱(boxing)與拆箱(unboxing)的機(jī)制來完成這種操作,而不給使用者帶來麻煩,這在以后的章節(jié)中將進(jìn)行更為詳細(xì)的介紹。 C#只允許單繼承,即一個類不會有多個基類,從而避免了類型定義的混亂。在后面的學(xué)習(xí)中你很快會發(fā)現(xiàn),C#中沒有了全局函數(shù),沒有了全局變量,也沒有了全局常數(shù)。一切的一切,都必須封裝在一個類之中。你的代碼將具有更好的可讀性,并且減少了發(fā)生命名沖突的可能。 整個C#的類模型是建立在.NET虛擬對象系統(tǒng)(Visual Object System,VOS)的基礎(chǔ)之上,其對象模型是.NET基礎(chǔ)架構(gòu)的一部分,而不再是其本身的組成部分。在下面將會談到,這樣做的另一個好處是兼容性。 借助于從VB中得來的豐富的RAD經(jīng)驗,C#具備了良好的開發(fā)環(huán)境。結(jié)合自身強(qiáng)大的面向?qū)ο蠊δ?,C#使得開發(fā)人員的生產(chǎn)效率得到極大的提高。對于公司而言,軟件開發(fā)周期的縮短將能使它們更好應(yīng)付網(wǎng)絡(luò)經(jīng)濟(jì)的競爭。在功能與效率的杠桿上人們終于找到了支點。 三、與Web的緊密結(jié)合 .NET中新的應(yīng)用程序開發(fā)模型意味著越來越多的解決方案需要與Web標(biāo)準(zhǔn)相統(tǒng)一,例如超文本標(biāo)記語言(Hypertext Markup Language,HTML)和XML。由于歷史的原因,現(xiàn)存的一些開發(fā)工具不能與Web緊密地結(jié)合。SOAP的使用使得C#克服了這一缺陷,大規(guī)模深層次的分布式開發(fā)從此成為可能。 由于有了Web服務(wù)框架的幫助,對程序員來說,網(wǎng)絡(luò)服務(wù)看起來就象是C#的本地對象。程序員們能夠利用他們已有的面向?qū)ο蟮闹R與技巧開發(fā)Web服務(wù)。僅需要使用簡單的C#語言結(jié)構(gòu),C#組件將能夠方便地為Web服務(wù),并允許它們通過Internet被運行在任何操作系統(tǒng)上的任何語言所調(diào)用。舉個例子,XML已經(jīng)成為網(wǎng)絡(luò)中數(shù)據(jù)結(jié)構(gòu)傳遞的標(biāo)準(zhǔn),為了提高效率,C#允許直接將XML數(shù)據(jù)映射成為結(jié)構(gòu)。這樣就可以有效的處理各種數(shù)據(jù)。 四、完整的安全性與錯誤處理 語言的安全性與錯誤處理能力,是衡量一種語言是否優(yōu)秀的重要依據(jù)。任何人都會犯錯誤,即使是最熟練的程序員也不例外:忘記變量的初始化,對不屬于自己管理范圍的內(nèi)存空間進(jìn)行修改,......。這些錯誤常常產(chǎn)生難以預(yù)見的后果。一旦這樣的軟件被投入使用,尋找與改正這些簡單錯誤的代價將會是讓人無法承受的。C#的先進(jìn)設(shè)計思想可以消除軟件開發(fā)中的許多常見錯誤,并提供了包括類型安全在內(nèi)的完整的安全性能。為了減少開發(fā)中的錯誤,C#會幫助開發(fā)者通過更少的代碼完成相同的功能,這不但減輕了編程人員的工作量,同時更有效地避免了錯誤的發(fā)生。 .NET運行庫提供了代碼訪問安全特性,它允許管理員和用戶根據(jù)代碼的ID來配置安全等級。在缺省情況下,從Internet和Intranet下載的代碼都不允許訪問任何本地文件和資源。比方說,一個在網(wǎng)絡(luò)上的共享目錄中運行的程序,如果它要訪問本地的一些資源,那么異常將被觸發(fā),它將會無情地被異常扔出去,若拷貝到本地硬盤上運行則一切正常。內(nèi)存管理中的垃圾收集機(jī)制減輕了開發(fā)人員對內(nèi)存管理的負(fù)擔(dān)。.NET平臺提供的垃圾收集器(Garbage Collection,GC)將負(fù)責(zé)資源的釋放與對象撤銷時的內(nèi)存清理工作。 變量是類型安全的。C#中不能使用未初始化的變量,對象的成員變量由編譯器負(fù)責(zé)將其置為零,當(dāng)局部變量未經(jīng)初始化而被使用時,編譯器將做出提醒;C#不支持不安全的指向,不能將整數(shù)指向引用類型,例如對象,當(dāng)進(jìn)行下行指向時,C#將自動驗證指向的有效性;C#中提供了邊界檢查與溢出檢查功能。 五、版本處理技術(shù) C#提供內(nèi)置的版本支持來減少開發(fā)費用,使用C#將會使開發(fā)人員更加輕易地開發(fā)和維護(hù)各種商業(yè)用戶。 升級軟件系統(tǒng)中的組件(模塊)是一件容易產(chǎn)生錯誤的工作。在代碼修改過程中可能對現(xiàn)存的軟件產(chǎn)生影響,很有可能導(dǎo)致程序的崩潰。為了幫助開發(fā)人員處理這些問題,C#在語言中內(nèi)置了版本控制功能。例如:函數(shù)重載必須被顯式聲明,而不會象在C++或java中經(jīng)常發(fā)生的那樣不經(jīng)意地被進(jìn)行,這可以防止代碼級錯誤和保留版本化的特性。另一個相關(guān)的特性是接口和接口繼承的支持。這些特性可以保證復(fù)雜的軟件可以被方便地開發(fā)和升級。 六、靈活性和兼容性 在簡化語法的同時,C#并沒有失去靈活性。盡管它不是一種無限制語言,比如:它不能用來開發(fā)硬件驅(qū)動程序,在默認(rèn)的狀態(tài)下沒有指針等等,但是,在學(xué)習(xí)過程中你將發(fā)現(xiàn),它仍然是那樣的靈巧。 如果需要,C#允許你將某些類或者類的某些方法聲明為非安全的。這樣一來,你將能夠使用指針、結(jié)構(gòu)和靜態(tài)數(shù)組,并且調(diào)用這些非安全代碼不會帶來任何其它的問題。此外,它還提供了一個另外的東西(這樣的稱呼多少有些不敬)來模擬指針的功能--delegates,代表。再舉一個例子:C#不支持類的多繼承,但是通過對接口的繼承,你將獲得這一功能。 下面談安全性。 正是由于其靈活性,C#允許與C風(fēng)格的需要傳遞指針型參數(shù)的API進(jìn)行交互操作,DLL的任何入口點都可以在程序中進(jìn)行訪問。C#遵守.NET公用語言規(guī)范(Common Language Specification,CLS),從而保證了C#組件與其它語言組件間的互操作性。元數(shù)據(jù)(metadata)概念的引入既保證了兼容性,又實現(xiàn)了類型安全。
  1. 三峽適合修建水力發(fā)電站,也可以從《三峽》找出兩條理由,請用自己的語言概括,并寫出文中印證理由的原句
    2024-08-17
  2. 三峽適合修建水力發(fā)電站。用自己的語言概括,并寫出文中印證理由的原句
    2024-08-17
  3. 下面這段文字在標(biāo)點使用、語言結(jié)構(gòu)、用詞得體上各有一處不當(dāng),請加以修改。
    2024-08-17
  4. “綠色、環(huán)保、低碳”是當(dāng)今世界的關(guān)鍵詞,“低碳”要求我...
    2024-08-17
  5. 我是漢語言文學(xué)專業(yè),女生,想了解如果進(jìn)葛洲壩集團(tuán)待遇怎樣?發(fā)展前景怎樣?招聘時說要跟著項目走
    2024-08-17
  6. 風(fēng)力發(fā)電機(jī)設(shè)計軟件gh bladed 控制部分用什么語言?
    2024-08-17
  7. 運用所學(xué)知識分析中國是如何應(yīng)對全球性的氣候問題(課本語言) 我是初三的
    2024-08-17
  8. 【關(guān)鍵詞】:磁性材料、順磁性、抗磁性、磁疇、鐵磁性、反鐵磁性、亞鐵磁性、永磁材料
    2024-08-17
  9. 【關(guān)鍵詞】:磁性材料、順磁性、抗磁性、磁疇、鐵磁性、反鐵磁性、亞鐵磁性、永磁材料
    2024-08-17
  10. 【關(guān)鍵詞】:磁性材料、順磁性、抗磁性、磁疇、鐵磁性、反鐵磁性、亞鐵磁性、永磁材料
    2024-08-17
  11. 【關(guān)鍵詞】:磁性材料、順磁性、抗磁性、磁疇、鐵磁性、反鐵磁性、亞鐵磁性、永磁材料
    2024-08-17
  12. 伊拉克的國土面積、人口、官方語言?
    2024-08-17
  13. 【關(guān)鍵詞】:磁性材料、順磁性、抗磁性、磁疇、鐵磁性、反鐵磁性、亞鐵磁性、永磁材料
    2024-08-17
  14. 中國石油大學(xué)(華東)大一的C語言的作業(yè)好難做啊 考試會不會很難? 掛科的多么?
    2024-08-17
  15. 中國石油大學(xué)漢語言文學(xué)專業(yè)如何
    2024-08-17