分類:C#、VS2015 創建日期:2016-06-18 使用教材:(十二五國家級規劃教材)《C#程式設計及應用教程》(第3版) 一、使用別人已經設計好的類簡化你的代碼編寫工作量 當讓你去處理一堆亂七八糟的事情時,要把它弄的有條理,首先需要“先把它分成幾大部分”(劃分為不同的“命名空間”或者“包”) ...
分類:C#、VS2015
創建日期:2016-06-18
使用教材:(十二五國家級規劃教材)《C#程式設計及應用教程》(第3版)
一、使用別人已經設計好的類簡化你的代碼編寫工作量
當讓你去處理一堆亂七八糟的事情時,要把它弄的有條理,首先需要“先把它分成幾大部分”(劃分為不同的“命名空間”或者“包”),然後再把每一部分進行“分類”(每個命名空間下可能有多個類),最後再一件一件地去完成(實現各個類的功能)。
可是,你如何用代碼去描述這些“分類”呢?總得先區分出來你是不是在描述分類吧,這就是class關鍵字的用途。當然,你還得給每個分類起個專門的名字,否則你仍然區分不出來描述的是哪一類的東西。
分類後,就可以通過代碼去描述類中需要實現的功能了。
總體來說,面向對象程式設計的基本處理方式就是:對於有先後關聯的在一個類中就能完成的業務,就在指定的類中按順序一件一件地通過代碼實現(結構化程式設計)。對於沒有先後關聯的業務,就安排多個人(多個類中的多個方法)同時去做(多線程、多進程)。
誰安排?是你。誰負責去執行你安排的任務?是操作系統。
二、會觀察.NET框架包含哪些命名空間
.NET框架已經幫你定義了上萬個類來幫助你簡化代碼編寫工作量,這些類在安裝VS2015時已經全部安裝到了你的機器上並將其分配到了不同的dll文件中,在每個dll文件中,又將所包含的類分配到了不同的命名空間下,你所做的大部分事情就是利用using指令引用你知道的命名空間(至於在哪個dll文件中你不用去考慮,.NET框架會自動幫你做這件事)。所以,你得先瞭解.NET框架下有哪些命名空間。
添加對命名空間的引用後,你就可以直接使用命名空間下包含的這些類實現你要處理的業務邏輯了。
瞭解.NET框架下有哪些命名空間的辦法如下:
(1)運行VS2015,新建項目,選擇一個模板,比如選擇控制台應用程式。
(2)選擇主菜單的【視圖】->【對象瀏覽器】,此時你就會看到控制台應用程式中你可以直接引用的命名空間。
例如,展開mscorlib下的System命名空間,你就會看到Console類,單擊它,就會看到該類中包含的各種方法,單擊某個方法,你就會看到它的解釋。如下圖所示:
一定要學會用這種辦法找到你需要的東西,看到了嗎?教材中告訴你的僅僅是其中最常用的幾個類和方法,實際項目中用到的可遠遠不止這些。只有這樣,你才能真正做到舉一反三,而不是別人教一個你會一個。
三、學習開源架構開闊你的思路
除了.NET框架內置的類以外,網上還有相當多的開源架構(裡面也包含很多類)設計的都很漂亮,分析這些架構的源代碼,學習這些架構的基本設計思路,逐步開闊你的視野,然後把它變成你自己的思想才是正道,而不是直接把人家的源程式拿來用於項目。原因很簡單,不論是哪個公司,開源的東西都是經過開發者精心“過濾”的,而被過濾掉的恰恰是項目中最關鍵的部分--“性能”和高級功能。換句話說,人家只是想通過開源的代碼告訴你基本實現思路,說到底也只是“請君入瓮”的一種營銷策略而已,如果所有核心代碼都給你開源了,那人家的公司豈不是早就被那些只會盜取別人成果的無良公司吃掉了,呵呵。
IBM、微軟、HP、蘋果、谷歌、……,所有公司都是這麼乾的,既有開源的東西(不要錢,但是功能和性能都有限制),同時也有不開源的東西(要錢,所有功能都有,性能也沒有限制)。所以,別為了吹捧自己的觀點就只強調哪家公司的某一個方面,為了攻擊別人的觀點就只強調哪家公司的另一個方面,見到網上整天爭來爭去哪個好那個不好,說到底不還都是在討論人家美國公司給你的東西嗎。
不管怎樣折騰,直接把人家開源的源程式拿來用於項目成果,充其量也只是一個跟屁蟲,區別僅僅是跟的是誰的屁股。
記住:“開源”也好,“免費”也好,都是別人給你嘗嘗味道的糖,是供你學慣用的,別天真的把它拿來當飯吃。或者說,學習期間,都瞭解瞭解,這樣在實際用到時你才能知道目標在哪。只知其一,不知其二,你自己說的再天花亂墜,別人也不會認同你的看法。
四、本章學習要點
1、學會自己定義類(class)
2、學會自己定義結構(struct)
3、掌握屬性的基本用法
4、掌握方法的基本用法
5、理解事件的基本概念和基本用法
6、理解類的封裝、繼承、多態性
7、理解如何將圖形作為對象(高級內容)
8、掌握日期和時間處理的基本用法
9、掌握隨機數的基本用法
10、掌握定時器的基本用法
11、掌握基本數學運算的基本用法
五、本章示例截圖
本章源程式(VS2015版)的示例截圖如下:
補充例子中的部分運行截圖如下(幫助你理解如何利用繼承實現複雜功能):