2.48k likes | 2.63k Views
Microsoft Visual C# .NET 入門. 蘇慶隆 clsu@mail.cjcu.edu.tw. C# 的創立與歷史 變數與資料型態 程式控制流程 陣列與字串 封裝、多型與繼承. 大綱. C# 的創立與歷史 變數與資料型態 程式控制流程 陣列與字串 封裝、多型與繼承. 大綱. C# 的創立與歷史. 近代物件導向程式設計 C# 的創立 何謂 .NET Framework ? C# 與 .NET Framework 的關係. C# 的創立與歷史. 近代物件導向程式設計 C# 的創立
E N D
Microsoft Visual C# .NET 入門 蘇慶隆 clsu@mail.cjcu.edu.tw
C# 的創立與歷史 變數與資料型態 程式控制流程 陣列與字串 封裝、多型與繼承 大綱
C# 的創立與歷史 變數與資料型態 程式控制流程 陣列與字串 封裝、多型與繼承 大綱
C# 的創立與歷史 • 近代物件導向程式設計 • C# 的創立 • 何謂 .NET Framework? • C# 與 .NET Framework的關係
C# 的創立與歷史 • 近代物件導向程式設計 • C# 的創立 • 何謂 .NET Framework? • C# 與 .NET Framework的關係
近代物件導向程式設計 • C 語言的創立表示近代程式設計的開端 • 源於1960年代之結構化程式設計 • 問世於1970年代,1980年代被廣泛使用 • 程式碼在5000行左右就會有其維護上的困難 • C++ 本質上是物件導向版本的 C 語言 • 問世於1979年,由Bjarne Stroustrup設計 • 1990年代後被廣泛使用
近代物件導向程式設計-續 • Java 是建立跨平台、可移植程式碼 • 問世於1991年,由James Gosling為主設計 • 對於電腦環境的改變進行革新 • 於1994年網際網路興盛而受到矚目
C# 的創立與歷史 • 近代物件導向程式設計 • C# 的創立 • 何謂 .NET Framework? • C# 與 .NET Framework的關係
C# 的創立 • C# 提出元件導向語言、跨語言溝通 • 由Microsoft 所創立,為Microsoft .NET 一部份 • 問世於2000年,由Anders Hejlsberg為主設計 • Anders 為世界知名電腦語言專家,曾在1980年代開發最快的 Pascal 編譯器,並成功將Pascal 從 Dos 移植到 Windows。
C# 族譜 C C++ Java C#
C# 的創立與歷史 • 近代物件導向程式設計 • C# 的創立 • 何謂 .NET Framework? • C# 與 .NET Framework的關係
何謂 .NET Framework? • 定義一共通語言執行環境(Common Language Runtime,CLR),管理程式執行狀態。 • .NET 類別函式庫,讓支援.NET的程式語言可以使用CLR進行操作。
C# 的創立與歷史 • 近代物件導向程式設計 • C# 的創立 • 何謂 .NET Framework? • C# 與 .NET Framework的關係
C# 與 .NET Framework的關係 • C# 最初由Microsoft 所主導,用來建立.NET Framework 的程式碼。 • C# 使用.NET Framework 定義的函式庫。 • 因此兩者之間是不可區分的,意味著學習C# 語法同時需了解使用.NET Framework函式庫。
C# 的創立與歷史 變數與資料型態 程式控制流程 陣列與字串 封裝、多型與繼承 大綱
Hello World using System; class HelloWorld { public static void Main() { Console.WriteLine("Hello World C#."); } }
變數與資料型態 • 數值型別 • 參考型別 • 變數宣告 • 變數有效範圍 • 運算子
變數與資料型態 • 數值型別 • 參考型別 • 變數宣告 • 變數有效範圍 • 運算子
變數與資料型態 • 數值型別 • 參考型別 • 變數宣告 • 變數有效範圍 • 運算子
參考型別 • 參考型別為類別定義,稍候會詳細說明。 • 參考型別即為 C/C++ 指標概念,為不可修改的固定指標。 • 所有數值型別皆有別於參考型別,屬於基本資料型別。
變數與資料型態 • 數值型別 • 參考型別 • 變數宣告 • 變數有效範圍 • 運算子
變數宣告 // 變數原型宣告 type var-name; // 初始化變數原型宣告 type var-name=value; // 動態初始化變數原型宣告 type var-name=function-call();
變數宣告-續 using System; class Sample2_1 { public static void Main() { int var1; // 變數宣告 int var2 = 10; // 初始化變數宣告 float f = 1.2f; double s1 = 3.0; double s12 = Math.Sqrt( s1 ); // 動態初始化變數 } }
變數與資料型態 • 數值型別 • 參考型別 • 變數宣告 • 變數有效範圍 • 運算子
變數有效範圍 class Sample2_2 { public static void Main() { int var1 = 5; { int var2 = 10; } var1 = 6; // var2 = 11; // 外層區塊無法看到內層區塊變數 } }
變數有效範圍-續 class Sample2_3 { public static void Main() { int var1 = 5; { var1 = var1 + 10; } var1 = var1 + 10; // 此時變數 var1 = 25 } }
變數與資料型態 • 數值型別 • 參考型別 • 變數宣告 • 變數有效範圍 • 運算子
運算子 • 算術運算子 • 關係/邏輯運算子 • 指派運算子 • 三元運算子
運算子 • 算術運算子 • 關係/邏輯運算子 • 指派運算子 • 三元運算子
算術運算子-續 using System; class Sample2_4 { public static void Main() { int iresult , i=25; double dresult, d; d = i + 9.2; iresult = i * 18; dresult = d / i; iresult++; Console.WriteLine("iresult = " + iresult); Console.WriteLine("dresult = " + dresult); } }
運算子 • 算術運算子 • 關係/邏輯運算子 • 指派運算子 • 三元運算子
關係/邏輯運算子-續 using System; class Sample2_5 { public static void Main() { int i = 22, j = 23; bool b1 = true, b2 = false; Console.WriteLine("i < j " + (i < j)); Console.WriteLine("i != j " + (i != j)); Console.WriteLine("i > j " + (i > j)); Console.WriteLine("b1 & b2 " + (b1 & b2)); Console.WriteLine("b1 | b2 " + (b1 | b2)); Console.WriteLine("b1 ^ b2 " + (b1 ^ b2)); } }
運算子 • 算術運算子 • 關係/邏輯運算子 • 指派運算子 • 三元運算子
指派運算子 // 指派運算子原型宣告 var-name = expression; expression 可以是任何合法的運算式, 其意義是將等號右邊運算式結果指定給等號左邊運算元 例如: int i = 5; // i = 5 int j = i + 3; // j = 8 int a = Math.Sqrt(10); // a = 100 i = j = a; // i = j = a = 100 a = a + 10; // a = 110
複合指派 // 複合指派運算子原型宣告 var-name operator= expression; operator為任何需要二個運算元的運算子, 例如: int a = 100; a += 10; // 同義 a = a + 10, a = 110 a *= 10; // 同義 a = a * 10, a = 1100 a %= 10; // 同義 a = a % 10, a = 0
運算子 • 算術運算子 • 關係/邏輯運算子 • 指派運算子 • 三元運算子
三元運算子 // 三元運算子原型宣告 expression1 ? expression2 : expression3; expression1限定是bool運算式, 意義為若expression1為真時,求expression2, 若expression1為假時,求expression3。 例如: int a = -50; int b = a < 0 ? -a : a; // b = 50
C# 的創立與歷史 變數與資料型態 程式控制流程 陣列與字串 封裝、多型與繼承 大綱
程式控制流程 • 選擇述句 • 迭代述句 • 跳躍述句
程式控制流程 • 選擇述句 • 迭代述句 • 跳躍述句