• Save
C#
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

C#

on

  • 1,429 views

 

Statistics

Views

Total Views
1,429
Views on SlideShare
1,429
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

C# Presentation Transcript

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