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