Your SlideShare is downloading. ×
0
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
C+
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

C+

436

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
436
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×