1 / 28

C# 課程

C# 課程 . 基本介面介紹. 建立新 專案 STEPS 1 開啟 Visual Studio 2010 ,畫面左方選擇建立新專案. 基本介面介紹. 建立新 專案 STEPS 2 左邊注意所選擇的語言 (C#) ,中間選擇要建立的專案類型。主要會用到 Windows Form 應用程式以及主控台應用 程式兩種。這邊先選擇建立主控台應用程式, 預設專案名稱為 ConsoleApplication1. Windows Form 應用程式 執行結果為視窗化界面的程式 , 具表單、按鈕、下拉式選單等等. 主控台應用程式 執行結果為文字介面的程式 ,

cameo
Download Presentation

C# 課程

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C#課程

  2. 基本介面介紹 建立新專案 STEPS1開啟Visual Studio 2010,畫面左方選擇建立新專案

  3. 基本介面介紹 建立新專案 STEPS 2左邊注意所選擇的語言(C#),中間選擇要建立的專案類型。主要會用到Windows Form應用程式以及主控台應用 程式兩種。這邊先選擇建立主控台應用程式,預設專案名稱為ConsoleApplication1 Windows Form應用程式 執行結果為視窗化界面的程式, 具表單、按鈕、下拉式選單等等 主控台應用程式 執行結果為文字介面的程式, 如同Windows作業系統內建 的明令提示字元

  4. 主控台應用程式

  5. 主控台應用程式-程式基本架構 專案建立完成後,visual Studio 2010會自動產生程式的基礎架構。 01 Using System; 02 Using System.Collections.Generic; 03 Using System.Linq; 04 Using System.Text; 05 Namespace ConsoleApplication1 06 { 07 Class Program 08 { 09 Static void Main(string[] args) 10 { 11 12 } 13 } 14 } 01-04行: 引用系統定義的命名空間(namespace) 05行: 預設的命名空間 07行: 預設的類別 09行: Main()為程式執行的進入點。 一個c#程式,可以同時有多個class 但只有一個class能有main方法。 C#編譯器在編譯時, 會將main()視為程式開始執行的進入點。

  6. Class Class (類別) 專案一建立完成, 會預設產生名稱為Program的類別 =>class Program 建立方式: 1.對著專案名稱=>右鍵=>新增項目 =>檔案類型選擇類別(如右圖所示) 2.直接在Namespace ConsoleApplication1 命名空間內撰寫,如: class a { }

  7. Class 範例一 在 class Class1 { 撰寫 public inta=10; } 並在原本Program.cs檔案中的main方法裡,撰寫 Class1 h = new Class1(); Console.WriteLine("Class1 的屬性a{0}為:",h.a); 對著專案名稱=>右鍵=>新增項目 =>檔案類型選擇類別 右方專案總管會發現新增了一個.cs檔案 名稱為Class1.cs 內容如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Class1 { } }

  8. Class建構子 範例二 : 在Class1中撰寫如下程式碼 class Class1 { private int weight; private intheigh; public Class1() { weight = 60; heigh = 170; Console.Write("身高為:{0} 體重為{1}", heigh, weight); } public Class1(int w) { weight = w; heigh = 170; Console.Write("{0} {1}",weight,heigh); } } • 建構子為在建立class物件時,會執行的初始化動作 • 建構子的名稱必須和class名稱相同 • 在未撰寫任何建構子的時候,系統會預設一個空白的預設建構子,一旦撰寫了任何建構子,系統預設的建構子就會消失() • 在Program.cs的main方法中,撰寫 • static void Main(string[] args) • { • int a=0; • Console.WriteLine("請輸入體重:"); • a=int.Parse(Console.ReadLine()); • Class1 h = new Class1(a);//此時宣告物件時因丟入一個參數,因此會執行建構子2 • Console.Read(); • } 建構子1 建構子2

  9. Class建構子 範例三 : 在Class1中撰寫如下程式碼 class Class1 { private int weight; private intheigh; public Class1() { weight = 60; heigh = 170; Console.Write("身高為:{0} 體重為{1}", high, weight); } public Class1(int w) { weight = w; heigh = 170; Console.Write("{0} {1}",weight,heigh); } } • 建構子為在建立class物件時,會執行的初始化動作 • 建構子的名稱必須和class名稱相同 • 在未撰寫任何建構子的時候,系統會預設一個空白的預設建構子,一旦撰寫了任何建構子,系統預設的建構子就會消失() • 在Program.cs的main方法中,撰寫 • static void Main(string[] args) • { • Class1 h = new Class1();//與上頁不同,此時宣告物件時未丟入參數,因此會執行建構子1 • Console.Read(); • } 建構子1 建構子2

  10. 範例四 : 在Class1中撰寫如下程式碼 class Class1 { private int weight, high; public int W { get { return high; } set { if (value > 400) { Console.WriteLine("error"); value = 200; } high = value; } } } Class存取子 get & set 一般在class中,宣告變數,供其他類別或方法呼叫,無法對該變數做保護或值得檢測與限制。如透過get 及set方法來存取,可加上一些檢測機制,範例如下 在Program.cs的main方法中,撰寫 static void Main(string[] args) { Class1 h = new Class1(); Console.Write("請輸入身高:"); h.W= int.Parse( Console.ReadLine() );//此時執行W屬性中的set,使用者輸入的值會預設存入set所提供的value變數 Console.WriteLine("身高為:{0}",h.W); //此時執行W屬性中的get Console.Read(); } Value為使用者輸入之值

  11. 變數 變數

  12. 變數宣告 • 命名規則: • 1.不允許以數字作為開頭 • 2.有區分大小寫,如SCORE和score視為兩個不同的名稱 • 3.可用中文字命名(不建議) • 4.不可和程式中之保留字重複,如int、if、using…等。

  13. 數值變數 • 有兩種宣告方式 • int i=100; //宣告名稱為i的數字變數,初始值為100 • int i; • i=100; 1 2 各種數值型態變數

  14. 字元與字串 • ※字元變數 • EX: char mychar=’a’; //宣告名稱為mychar的字元變數,值為a • ※字串變數 • EX: • String str1=”你好”;//宣告名稱為str1的字串變數 • String str1; • str1=”你好”;

  15. 主控台應用程式-顯示文字& 讀取資料 顯示文字: Console.Write- 顯示完字串後游標停留在最後一個字元後,不換行 Console.WriteLine-顯示完字串後游標自動換到下一行 讀取變數: Console.Read()- 讀取使用者輸入的字元 Console.ReadLine()–讀取使用者輸入之字串 Int a=0; Console.Write (“請輸入一個數字:”); Console.WriteLine(“數字a的值為{0}:",a);

  16. 範例 建立一程式,讓使用者輸入姓名及分數,最後在畫面上顯示結果

  17. 範例 12行:宣告字串變數name 13行:宣告數字變數score 14行:Console為命名空間System(已在01行中引用)中的一個類別。此類別中write方法,可將()中,雙引號包住的字串,由目前游標位置開始顯示在執行畫面中,並將游標停在該行的最後。 [可對照21行] 15行:用console類別中的Readline方法,讀取使用者輸入的字串

  18. 範例 18行:用int.Parse方法,將Readline方法讀取的字串強制轉換為int型態。 21行:和Write方法的差別在於,顯示完字串後,會自動將游標移動到下一行。 當中{0}、{1}分別用來表示要印出的第1個變數name,第2個變數score。 24行:等待由鍵盤輸入資料,利用此方法將執行畫面停留下來,方便觀看結果。

  19. 逸出序列(Escape sequence) 若在C#中,想要顯示已經具有特殊意義之字元(字串),如\n、\a等。可在該字元前面加上一個反斜線\,此反斜線稱為逸出序列(Escape sequence)

  20. If else & If … else if … else If … else if … else 語法 If (條件1) { 敘述區段1 } else if(條件2) { 敘述區段2 } else { 敘述區段3 } If else語法: if (條件) { 敘述區段 } else { 敘述區段 }

  21. If else & If … else if … else程式範例

  22. 三元運算子 .. ? .. : .. [可對照if else] 語法 變數 = 運算式1 ? 運算式2 : 運算式3; 若運算式1為真,則運算式2的結果指定給變數,否則將運算式3的結果指定給變數 EX: max =a > b ? a : b 若a大於b,max = a,否則 max =b 改寫為if else則為: If(a>b) { max=a; } else { max=b }

  23. Switch 若撰寫程式時,遇到有多種選擇的情形,一般來說是可以使用if else if 來完成。但會造成程式碼不易閱讀。若改用switch可使程式碼簡潔易維護。 語法 switch(變數 或 運算式) { case value1: [敘述區段1] break; … … case value5: [敘述區段5] break; } 說明: 運算式或變數的值,若等於value1,則執行接在value1後面的敘述區段,其餘依此類推

  24. 結構(struct) 結構可將數個相關但不同型別的變數集合在一起。成為一個新的結構資料型別。結構名稱和列舉相同,可做為新的資料型別使用。 語法 [存取修飾詞] struct結構名稱 { [存取修飾詞] 資料型別 結構成員1 … [存取修飾詞] 資料型別 結構成員4 } 說明: 存取修飾詞,可使用public(共用成員)或private(私有成員),若不寫,預設為private

  25. 結構(struct)程式範例

  26. 列舉enum 為常數的集合。可以在類別(class)或結構(struct)內宣告,但不能在函式中宣告。存取修飾詞預設為public,可不打。 • 說明: • 列舉名稱可視為使用者自訂之新資料型別(見程式碼範例說明) • 列舉型態只能是: byte, sbyte, short, ushort, int, uint, long, ulong • 列舉內的每個成員,若沒有指定,預設從編號0開始。也可如下用指定的方式(見程式碼範例13-19行說明) 宣告方式 enum列舉名稱 : 列舉型別 { 列舉成員1, 列舉成員2, };

  27. 列舉enum程式碼範例(宣告一個用來表示一星期七天的列舉型別。)列舉enum程式碼範例(宣告一個用來表示一星期七天的列舉型別。) 11行:宣告名稱為weekDays,型別為int的列舉,名稱weekDays可做為新的型別使用。 13-19行:宣告列舉成員,並指定各個成員的常數值 22行:進入主程式 29行:使用者輸入之weeknum之值,必須先強制轉換型別為weekDays,才能夠與列舉成員之常數值做比較。 29-54行:使用switch進行多條件判斷。若使用者輸入之weeknum其值為1,則與weekDays.monday(利用存取修飾詞 ”.”,存取列舉weekDays中的monday成員)值相等,符合case weekDays.monday。接著利用console.WriteLine印出列舉成員Monday之字串值”monday”。ToString()為內建之方法,可將weekDays.Monday強制轉換為字串型別。 50行:若想印出該列舉成員之常數值,可在weekDays.列舉成員前加上(int),轉換為int型別即可。

  28. 上課驗收 試使用多項選擇敘述,由鍵盤輸入信用卡的前兩位數字作下列判斷:(本列請使用if-else或switch敘述達成) 若為03,顯示「03:聯合信用卡」 若為35,顯示「 35: JCB信用卡」 若為45,顯示「 45 : VISA信用卡」 若為54,顯示「 54 : MASTER信用卡」 其他顯示「xx:非商業用的信用卡」

More Related