學習C#的一般性步驟

曹化宇發表於2018-08-19

C#是一種.NET戰略一起誕生的現代化物件導向程式語言,它在微軟開發技術中的重要性不言而喻;對於很多需要在Windows系統下開發應用軟體的朋友來講,C#程式語言和.NET Framework平臺是非常合適的學習方向。

那麼,對於準備和剛剛開始學習C#的朋友來說,如何更好地掌握學習節奏,並且能夠有一個比較合理的學習計劃呢?本文就來討論一下C#和.NET Framework平臺應用開發的學習步驟和方向。

和很多開發技術一樣,學習的第一步就是程式語言,而這裡當然就是C#程式語言。C#是一種純粹的面嚮物件語言,所以,理解物件導向程式設計(OOP)的概念就是非常重要的了。簡單地說,物件導向程式設計就是以操作物件為中心,比如,我們可以使用“car.Color”程式碼讀取和設定汽車的顏色屬性(property),使用“car.Drive()”程式碼指定汽車行駛的方法(method),而這只是物件導向程式設計的基本表現形式;除此之外,物件導向程式設計還有更多的特點,比如繼承(inherit),主要是對已有程式碼的重複使用,即,在保持大量共性操作的基礎上,可以對原有的程式碼進行擴充套件,也可以改變其中的一些具體實現,從而在原有物件型別的基礎上更快捷地建立一個新的操作物件。具體到C#程式語言,在物件導向的實現上是非常強大和靈活的,熟練掌握這些特性也是我們進行下一步學習和開發的基礎。

程式語言中,另外兩個基本的程式設計要素就是資料處理和流程控制。我們先來看資料處理的相關主題,在C#語言中,模擬了C、C++等語言中的基本資料型別概念,比如int表示32位有符號整數、long表示64位有符號整數、float表示單精度浮點數、double表示雙精度浮點數等等,不過,這些型別實際上是.NET Framework架構中標準資料型別的別名,如int就是System.Int32型別、long就是System.Int64型別、floag就是System.Single型別、而double就是System.Double型別等等。瞭解了這些,我們就可以理解,為什麼在C#中,整數變數x可以使用x.ToString()方法轉換為字串型別(String,用於處理文字型別),而在C語言中就不能這樣,就是因為C#是一個物件導向的世界。

程式設計中,除了一行行地執行程式碼,根據不同的條件來執行不同的邏輯是一項常見的工作,和大多程式語言一樣,C#中主要包括了條件、選擇(開關)、迴圈(遍歷)和異常處理語句結構,只有掌握了這些基本語句結構,我們才能更好地應對不同邏輯的程式碼開發工作。

以上內容是很多程式語言共同的特質,而在C#中,還有一些能夠提高程式碼編寫效率的語法,如Lambda表示式的應用等;這些內容對於程式碼的執行並不會有太多幫助,但在編寫程式碼時卻可以簡化很多工作,掌握這些內容也是編寫程式碼技能的提高。

熟練掌握一門程式語言並不需要很長的時間,但是,能開發出實用的軟體又是另外一個概念了。我們使用.NET Framework平臺的一個很重要的原因,就是它提供了大量的開發資源,稱為.NET Framework類庫,使用這些資源,開發者可以很方便的操作一些原本很複雜的資源,如日期和時間操作、影像的處理、檔案操作、網路連線、網路資源上傳與下載、資料庫的操作等等,所以,根據需要學習相關的.NET Framework開發資源的應用,是一項長期並非常重要的工作。

接下來就是綜合考慮應用程式的開發。前面,使用C#程式語言和一些.NET Framework開發資源,已經可以開發出一定功能的應用軟體了,但是,我們還應該瞭解不同應用型別的主要特點,比如:(1)命令列程式,又稱為控制檯程式。是通過一系列的指令來完成指定的工作,對於很多系統操作者來講,這種型別的程式並不會陌生。(2)窗體應用,也就是我們所說的單機版程式,它有著友好的圖形化使用者介面(GUI),直觀的操作方式,是現在程式的主要形式之一。(3)第三種,也是非常常用的一類應用,就是Web應用,也就是我們所說的網站類的應用,雖然ASP.NET可以簡化很多開發工作,但是,只使用C#和.NET Framework資源恐怕還不能達到靈活、高效開發的目的,一些傳統的Web技術,如HTML、CSS、JavaScript等都是開發者需要了解的,也可以說,這已經完全是另外一個技術方向了。

如果開發者已經掌握了C#程式語言、大量的.NET Framework類庫和基本的應用開發方式,卻還覺得少點什麼,那就對了!

現在,是時候綜合考慮應用軟體中的各個部分的開發、組合、資料傳遞等工作了,在這個階段,也有很多名詞可以描述,如模組化設計、分層設計、介面設計等等;實際上,其本質就是將軟體系統由大化小,有效分離各個模組,以達到方便開發、測試、組合、替換和釋出的目的。模組之間的交流一般是通過標準的“介面”操作,如電源介面、USB介面等,我們可以隨時將不同的裝置接上相同的介面,只因它們是標準的連線和工作方式,在軟體模組也是這樣,合理應用標準化的“介面”,是高效、靈活開發的必要前提。

這裡以資料的傳遞為例。我們知道,在使用者介面中,資料是通過一些標準的元件顯示的,如文字框、列表等,在介面中獲取使用者輸入的資料以後中,還需要對資料的正確性進行判斷,必要時還需要對資料型別進行相應的轉換工作;然後,會將資料儲存到資料庫中。反向操作,會從資料庫中讀取資料,進行相應的轉換後顯示到使用者介面。這一系列的操作,如何才能更高效,就是考驗開發者的時候了,資料的獲取、轉換、傳遞和儲存等操作,在軟體開發中是非常常見和重要的功能,需要開發者有著堅實的理論基礎、大量的實踐和測試才能在實際工作中更有效地開展工作。

再接下來的學習和工作,可能就需要開發者的工作和興趣來決定了,軟體開發的方向是很多的,根據自己的需要選擇合理的技術、方法和工具也是正常的,所以,並不需要去爭論技術、方法和工具的好與不好,因為好與不好永遠都是相對的,並且是有侷限性的;只有根據學習和工作目標進行選擇,才是最高效的、也是最合理的;當然,如果只需要根據自己的興趣來選擇,那你就達到另一個境界了!玩開發,才是學習軟體開發最正確的姿勢。

CHY軟體小屋原創作品,謝謝!

相關文章