阮國榮
(廣東南方職業(yè)學(xué)院,廣東 江門 529000)
關(guān)鍵字:C#語言;面向?qū)ο?;編?/p>
C#是從C和C++語言演變而來,它是一種簡單、現(xiàn)代、類型安全的完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它是Microsoft專門為.NET平臺而創(chuàng)建的。C#是近來一段時(shí)期發(fā)展起來的,不僅吸收以往編程語言的精華,同時(shí)其他語言存在問題也得到了解決。雖然表面上看C#是C++基礎(chǔ)上寫成的,然而實(shí)質(zhì)上它是VB、Pascal、Java等各類語言的綜合。
(一)語法簡單易學(xué)
C#是非常容易學(xué)習(xí)的語言,該語言的首要目標(biāo)就是簡單。在C#中,沒有C++中流行的指針。默認(rèn)地,在受管理的代碼中,不允許如直接存取內(nèi)存等不安全的操作。在C++中經(jīng)常使用的操作符 “.”、“->”和“::”,它們分別使用于成員、引用和名字空間。然而操作符對初學(xué)者而言,到現(xiàn)在仍然是學(xué)習(xí)的難點(diǎn)。C#僅使用單個操作符 “.”,沒有其它操作符?,F(xiàn)在對我們來說,就只剩下對嵌套名字的注解進(jìn)行理解了。
(二)面向?qū)ο?/p>
C#屬于完成面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它擁有繼承、封裝和多態(tài)性這三大基本特征。
C#支持單繼承,即是一個類只能派生于另一個父類,也就是說只能有一個父類。大多數(shù)情況,我們創(chuàng)建一個子類也僅需要繼承一個基類。多重繼承制造出來的問題通常比其解決的問題還要多。如果你一定要用多重繼承,那么可以使用接口。 使用繼承機(jī)制可以增強(qiáng)代碼的復(fù)用性,減少代碼量,提高開發(fā)效率。
C#可以用屬性實(shí)現(xiàn)封裝,這樣做的好處是實(shí)現(xiàn)封裝更加方便,同時(shí)能夠通過屬性的寫和讀來保護(hù)類中的域,這樣就可以避免數(shù)據(jù)外泄,保證數(shù)據(jù)的安全。并且通過封裝,也可以使程序結(jié)構(gòu)性更強(qiáng),層次清晰,便于后期維護(hù)。
C#通過多態(tài)機(jī)制能夠減少編程代碼,同時(shí)也可以增強(qiáng)程序的可擴(kuò)充性,也就是說程序要增加功能或者修改功能的時(shí)候,只需要在原來的基礎(chǔ)上修改少量代碼。
(三)類型安全
C#為了對垃圾收集器(garbage collector)以及自己進(jìn)行保護(hù),實(shí)行最嚴(yán)格的類型安全。所以C#中一些有關(guān)變量的規(guī)定必須要遵循:如果變量沒有初始化不能被使用。對于對象的成員變量,編譯器負(fù)責(zé)清零。而局部變量,則由你負(fù)責(zé)清零。當(dāng)你使用的變量沒有初始化的時(shí)候,編譯器會提示你如何去做。這就避免了由于不經(jīng)初始化的變量進(jìn)行計(jì)算,而造成錯誤的結(jié)果,但是你還不知道為何會出現(xiàn)這些問題。
邊界檢查C#的一部分。當(dāng)定義數(shù)組只有n個元素,那么也僅僅能夠使用n個元素,越界的問題得到有效的解決。
算術(shù)運(yùn)算有可能溢出終值數(shù)據(jù)類型的范圍。C#允許在語句級或應(yīng)用程序級檢測這些運(yùn)算。在允許檢測溢出的情況下,當(dāng)溢出發(fā)生時(shí)將會拋出一個異常。在C#中,被傳遞的引用參數(shù)是類型安全的。
(一)對微軟的操作系統(tǒng),對微軟類庫的依賴性極強(qiáng)。所有項(xiàng)目編寫都依靠MSIL和CLS JIT編譯程序。但是程序設(shè)計(jì)和編譯程序級的優(yōu)化不能在非微軟的平臺上充分利用,想在非Windows平臺上展開.NET,再充分運(yùn)用它們也是不現(xiàn)實(shí)的。
(二)底層和高性能不合適。不合適做時(shí)間性能很高(高速算法)或空間性能很靈活(內(nèi)存立即釋放)的程序,因?yàn)橹虚g語言和編譯過程,比C/C++Native類型的語言會慢一些,內(nèi)存自動回收難以立即釋放不需要的內(nèi)存。
為了對C#語言有更加直觀的了解,下面舉一個簡單的C#例子,對C#的代碼風(fēng)格和特征進(jìn)行分析。
在上述代碼中,使用using關(guān)鍵字引用的名稱空間,使用namespace關(guān)鍵字定義命名空間,使用 class關(guān)鍵字定義類。C#程序是從Main方法開始執(zhí)行的。方法的內(nèi)容用大括號{ }包括,稱為“方法體”。Console.WriteLine()的作用是輸出字符串,把"這是一個簡單的C#程序"字符串輸出來。語句后面的分號表示了本句結(jié)束。
結(jié)合上述代碼可以總結(jié)出C#程序具備如下特征:
1.Main方法是程序入口,程序總是這開始執(zhí)行。
2.C#嚴(yán)格區(qū)分大小寫。如變量a和變量A表示不同的變量。
3.所有語句都以分號“;”結(jié)束。注意要用英文的分號“;”作結(jié)束符,用中文的分號會出錯。
4.C#語言的單行注釋格式為: //、/*...*/和///。//僅可進(jìn)行單行注釋,/*...*/可進(jìn)行多行注釋,///是文檔注釋。
隨著生活的不斷改善,社會的不斷進(jìn)步,計(jì)算機(jī)編程技術(shù)應(yīng)用越來越普遍的今天,其應(yīng)用水平得到穩(wěn)步提升。特別是C#在其中起到重要的作用,讓計(jì)算機(jī)的功能更加完善。C#是優(yōu)秀的計(jì)算機(jī)編程語言之一,精通C#不僅要通過理論知識的學(xué)習(xí),同時(shí)要經(jīng)歷不斷的實(shí)踐練習(xí),進(jìn)行總結(jié)分析,才能加深對語言的理解,將所學(xué)的知識融會貫通,最終編寫出優(yōu)秀的C#語言程序。