380 likes | 741 Views
Visual C# 2008 範例教學手冊. 課程簡報大綱. 第一章 認識 Visual C#. 電腦簡介 Visual C# 簡介 程式初瞥 C# 的程式架構 命名空間. 1-1 電腦簡介. 電腦 (Computer) 是由許多不同功能的電子零件及機械裝置所組成,因為它能執行算術運算,所以也稱為 電子計算機 (Electronic Computer) ,簡稱 計算機。 電腦基本上包括 硬體 (Hardware) 與 軟體 (Software) 兩大部分:硬體是一組可執行程式的實體,軟體是可提供電腦指令的程式。. 1-1-1 電腦硬體.
E N D
Visual C# 2008 範例教學手冊 課程簡報大綱 領航數位科技 編著
第一章 認識 Visual C# • 電腦簡介 • Visual C# 簡介 • 程式初瞥 • C# 的程式架構 • 命名空間
1-1 電腦簡介 • 電腦(Computer)是由許多不同功能的電子零件及機械裝置所組成,因為它能執行算術運算,所以也稱為 電子計算機(Electronic Computer),簡稱 計算機。 • 電腦基本上包括 硬體(Hardware)與 軟體(Software)兩大部分:硬體是一組可執行程式的實體,軟體是可提供電腦指令的程式。
1-1-1 電腦硬體 • 腦硬體包括 中央處理單元、記憶體、資料儲存媒體 及 輸出入設備。
1-1-2 資料的儲存格式 • 料儲存在記憶體是以電壓的高低來表示,因此我們以0和1來對應電壓的高低,也就是說記憶體靠著電流來保存一連串的0和1資料。 • 資料存在儲存媒體是則以磁性的正負來表示,因此我們以0和1來對應磁性的正負,也就是說儲存媒體靠著磁性來保存一連串的0和1。 • 由於電腦只能處理0和1資料,也就是二進位數系的資料,而我們習慣使用十進位數系的資料,因此資料進出記憶體必須經過轉換。
1-1-3 電腦軟體 • 電腦軟體是提供電腦指令的程式,分系統軟體與應用軟體兩大部分: • 系統軟體用來開發或執行其他的軟體,分作業系統與轉換系統。 • 應用軟體是為了解決特殊問題或提供特別服務的程式,如上網的IE、繪圖的AutoCAD等。
1-1-4 電腦程式 • 電腦軟體是由許多電腦程式(Computer Program)所組成,電腦程式是供電腦執行的一系列指令(Instructions)。撰寫電腦程式的工具叫程式語言(Program Language),它使用一些特定的字彙、語法來規範撰寫規則。電腦工程上有許多種的程式語言,就好像世界上有許多國家語言一樣。 • 一個程式是由許多的 敘述句(Statements)或稱 指令(Instructions)所組成。每一個句子必須遵循一定的程式語法(Syntax)並提供一定的語意(Semantics)。
1-1-5 電腦程式的開發 • 一個應用系統的開發一般是先做系統分析與系統設計,系統設計以後定出各程式的規範,就可進行程式的開發。程式的開發是先撰寫程式碼(Coding),再進行程式轉換與測試,轉換有錯回頭修改程式碼,再重新轉換。測試有錯也要回頭修改程式碼,再重新轉換與測試。
1-1-6 電腦程式的偵錯 • 在程式開發過程,從撰寫程式碼開始到程式完全可用,會經歷許多錯誤,包括: • 轉換時錯誤(Compile-time errors) (又稱語法錯誤Syntax errors):程式碼含有語法上的錯誤,無法產生執行檔或機器碼。 • 執行時錯誤(Run-time errors):執行檔或機器碼執行時發生未控制的錯誤,錯誤訊息由作業系統送出。 • 邏輯錯誤(Logical errors):執行檔或機器碼執行時產生非預期的結果。
1-2 Visual C#簡介 • C# (發音為 C Sharp)是微軟(Microsoft)公司為.NET Framework量身訂做的程式語言,介紹C#得從C系列程式語言的演進開始:C#是1980年由貝爾實驗室所開發,Java是1990年由昇陽(Sun Microsystems)公司所創作,C#則是2000年6月由微軟公司所推出。Java除了承襲C/C#的優點外,其跨平台的Virtual Machine設計,讓微軟大哥眼紅不已,尤其微軟在與昇陽的JVM官司後,C#向Java挑戰的意味相當的濃厚,其架構與Java相似也不在話下。C#不但繼承C/C#和Java的特點,更融入自家的Visual Basic功能,而大有明日之星的架勢,尤其在Vista推出後,C#儼然成為微軟程式開發工具的新教主。
1-2-1 Visual C#.NET • Visual C# .NET是一種新的程式語言,是用來設計各種可執行於.NET Framework上的應用程式,是Microsoft C和Microsoft C#的改良版。Visual C#則是根據C#程式語言所發展的視覺化程式開發工具,就像Eclipse是用來開發Java的IDE一樣,目的都是讓使用者輕鬆的開發程式。實際上C#也可以用小作家編輯程式碼,然後利用.NET Framework SDK tools裡的工具做翻譯與執行,但開發大型程式若使用有顯示行數的IDE會比較方便與有效。
1-2-2 Visual C#的運作方式 • C#程式語言兼具翻譯與直譯的功能,它的中介語言檔可以讓你的程式「寫一次,到處可執行」,也就是說C#程式有跨平台(Platform Independence)的功能,在任何裝有C#翻譯程式的作業系統上翻譯好的程式,可以在任何裝有.NET Framework的作業系統上執行。
1-2-3 C#的作業平台 • C#作業平台.NET Framework包含 類別庫(FCL, Framework Class Library)及 共同語言執行環境(CLR, Common Language Runtime)。
1-3 程式初瞥 • 學習程式撰寫不是研究電腦理論,而是熟悉程式語法的使用,程式語法有許多,不論簡單或複雜的語法,都必須置於一定的架構下。開始時,我們先用最簡單的程式敘述句介紹Visual C#程式的架構。
1-3-1 SDK的安裝 • 雖然一般程式語言都可以用文字編輯器(例如:Notepad記事本或WordPad)來撰寫,再使用SDK裡的轉換程式編譯,但開發效率比不上使用IDE工具。建議安裝C#開發平台Visual Studio 2008 Express Editions。
1-3-1 SDK的安裝 • 執行 vcssetup 安裝程式,出現 Visual Studio 2008 Express 安裝程式歡迎畫面。 • 按下 下一步 按鈕,出現授權確認畫面。 • 點選接受合約後,按下 下一步 按鈕,出現安裝選項畫面。 • 勾選安裝選擇性產品 (可不勾選) 後,按下 下一步 按鈕,出現安裝資料夾畫面。 • 鍵入安裝的資料夾後,按下 安裝 按鈕,出現下載及安裝進行畫面。 • 安裝完成後出現安裝完成畫面,按下 結束 按鈕完成 Visual Studio 2008 Express SDK 的安裝。
1-3-2 IDE介面說明 • 裝完成後首次啟動Visual Studio 2008 Express Edition程式,出現的IDE整合工作視窗:
1-3-3 Hello World實例 • 製作原始檔 • 功能列上點選 檔案>新增>專案,出現 新增專案 視窗後點選 主控台應用程式 的安裝範本並輸入專案名稱,然後按下 確定 按鈕。 • 原起始頁位置出現Program.cs頁標籤的工作視窗,將視窗內程式碼改成下列的程式碼。 • 01 /* The HelloWorldApp class displays "Hello World!" • 02 to the standard output. */ • 03 class HelloWorldApp • 04 { • 05 static void Main(string[] args) • 06 { • 07 // Display "Hello World!" • 08 System.Console.WriteLine("Hello World!"); • 09 } • 10 }
1-3-3 Hello World實例 • 將程式碼存檔 • 點選 檔案>全部儲存 指令存回所有的變動檔案。如果是使用 小作家,於檔名欄輸入「"HelloWorldApp.cs"」(檔名前後要有雙引號),檔案格式要選 純文字檔(Text Document),儲存目錄假設是e:\bC#\Code\Ch01。
1-3-3 Hello World實例 • 將原始檔轉換成中介語言MSIL檔 • 在Visual C# IDE 視窗功能列選擇 建置>建置方案(快速鍵 F7)。 • 如果是使用小作家編輯,就必須進入命令提示字元視窗執行csc翻譯程式。
1-3-3 Hello World實例 • 執行編譯好的MSIL檔 • 在Visual C# IDE視窗功能列選擇 偵錯>啟動但不偵錯 後即自動執行。 • 如果是使用小作家編輯,就必須要進入命令提示字元視窗,輸入 HelloWorldApp。
1-4 C#的程式架構 • 任何程式都有它一定的架構,撰寫Visual C# 程式就要在Visual C#程式的架構下,佈置各種程式指令。
1-4-1 程式模版(Template) • 每種程式語言都有自己的架構,C#程式的架構模式如下:
1-4-2 程式註解 • 解說明在任何程式語言都是必要的項目,因為程式並不是只給電腦(轉換程式)或設計人看的,其他的相關人員也需看得懂,所以為了方便閱讀,必須在程式適當的地方加上說明文字。 • 有二種方法用來標示備註說明: • 單行註解:在每一行說明前加上//符號。 • 多行註解:在所有說明前加上/*符號,說明後加上*/符號。
1-4-3 函式位置 • 如果程式用到系統函式或自訂的外部函式,就要指定所使用函式的位置,語法是以using關鍵字來定義。如在程式中使用到資料輸出的函式WriteLine,由於WriteLine函式存在System下的目錄,所以在程式前面定義引用System命名空間。另外也可以使用namespace關鍵字來定義本身中介語言檔所存放的目錄,不定義時同原始碼的目錄。
1-4-4 程式定義 • 程式定義是定義中介語言(IL)檔的檔案名稱以及主函式位置。 • 定義類別檔的檔案名稱。 • 01 using System; • 02 using System.Collections.Generic; • 03 using System.Linq; • 04 using System.Text; • 05 • 06 namespace HelloWorldApp • 07 { • 08 class HelloWorldApp • 09 { • 10 static void Main(string[] args) • 11 { • 12 // 顯示 "Hello World!" • 13 Console.WriteLine("Hello World!"); • 14 } • 15 } • 16 }
1-4-4 程式定義 • 主函式定義 • 每個C#程式可以包含許多函式,但其中只有一個是主函式,稱 Main(string[] args)。 • 01 using System; • 02 using System.Collections.Generic; • 03 using System.Linq; • 04 using System.Text; • 05 • 06 namespace HelloWorldApp • 07 { • 08 class HelloWorldApp • 09 { • 10 static void Main(string[] args) • 11 { • 12 // 顯示 "Hello World!" • 13 Console.WriteLine("Hello World!"); • 14 } • 15 } • 16 }
1-4-5 函式使用 • 01 using System; • 02 using System.Collections.Generic; • 03 using System.Linq; • 04 using System.Text; • 05 • 06 namespace HelloWorldApp • 07 { • 08 class HelloWorldApp • 09 { • 10 static void Main(string[] args) • 11 { • 12 // 顯示 "Hello World!" • 13 Console.WriteLine("Hello World!"); • 14 } • 15 } • 16 } • 函式使用指令包括四部分:類別名稱(例如:System)、物件名稱 (例如:Console)、函式名稱(例如:WriteLine)及 傳入函式的資料(例如:"Hello World!")。
1-5 命名空間(Namespaces) • 每個程式都難免用到視為「黑箱」的系統函式或自定函式,在程式編譯時必須知道「黑箱」內容,命名空間就是用來指示編譯器函式內容的所在位置。
1-5-1 何謂命名空間 • 據軟體工程的 再利用(Reuse)與 模組化(Modularity)原則,我們將複雜系統的程式碼分成許多 模組(Module),為了方便管理與使用這些模組程式,我們將這些模組程式分門別類的置放,並給予適當的命名,如同電話黃頁的分類:食、衣、住、行、育、樂是第一層分類,超市、糧油行、餐廳等是食的第二層分類,中餐廳、西餐廳等又是餐廳的第三層分類,酒樓、台菜館、湘菜館等是中餐廳的第四層分類,如果「台灣小吃」是個台菜館,為了便於搜尋最好加上完整的搜尋路徑,寫成「食-餐廳-中餐廳-台菜館-台灣小吃」。
1-5-2 命名空間的使用 • 在命名空間裡有許多不同功能的物件供許多程式共同使用,如果要引用命名空間裡的物件,必須使用物件的全名(即命名空間名稱加上物件名稱)。例如: • 01 static void Main(string[] args) • 02 { • 03 System.Console.WriteLine("My name is Danny"); • 04 } • 01 static void Main(string[] args) • 02 { • 03 System.String^ path = "c:\temp\Test.txt"; • 04 if (!System.IO.File.Exists(path)) • 05 System.Console.WriteLine("File was Not Found!"); • 06 }
1-5-3 如何自訂命名空間 • 告自己的命名空間,有助於在較大的程式專案中控制類別和方法名稱的範圍。在類別的原始碼最前面加一行namespace directive; namespace是保留字,directive是命名空間名稱,是層狀目錄,各層目錄名稱之間以句點(.)隔開。
1-5-3 如何自訂命名空間 • 01 using System; • 02 using System.Collections.Generic; • 03 using System.Linq; • 04 using System.Text; • 05 • 06 namespace HelloWorldApp • 07 { • 08 class HelloWorldApp • 09 { • 10 static void Main(string[] args) • 11 { • 12 // 顯示 "Hello World!" • 13 Console.WriteLine("Hello World!"); • 14 } • 15 } • 16 }