C#語言全書課件完整版ppt全套教學教程最全電子教案電子講義(最新)_第1頁
C#語言全書課件完整版ppt全套教學教程最全電子教案電子講義(最新)_第2頁
C#語言全書課件完整版ppt全套教學教程最全電子教案電子講義(最新)_第3頁
C#語言全書課件完整版ppt全套教學教程最全電子教案電子講義(最新)_第4頁
C#語言全書課件完整版ppt全套教學教程最全電子教案電子講義(最新)_第5頁
已閱讀5頁,還剩518頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、01 基本數據類型02 常量和變量03 表達式與運算符04 選擇語句05 循環語句06 跳轉語句07 數組1 基本數據類型基本數據類型值類型直接存儲值30ageageage2int age = 30;3030int age2 = age;ageage23035age2 = 35;值類型整數類型int i = 10; int j = -10;uint m = 10; uint n = -10;示例類型說明(8位等于1字節)范圍sbyte8位有符號整數-128127short16位有符號整數-3276832767int32位有符號整數-21474836482147483647long64位有符號整

2、數-92233720368547758089223372036854775807byte8位無符號整數0255ushort16位無符號整數065535uint32位無符號整數04294967295ulong64位無符號整數018446744073709551615類 型說 明范 圍float精確到7位數1.510-453.41038double精確到1516位數5.010-3241.710308decimal精確到28位數1.010-287.91028float theMySum = 9.27f; float theMuSums = 1.12F;double myDou = 927d; dou

3、ble mudou = 112D; decimal money = 1.12m; 或者 decimal money = 1.12M;浮點類型bool類型 布爾類型主要用來表示true/false值,C#中定義布爾類型時,需要使用bool關鍵字。例如,下面代碼定義一個布爾類型的變量:bool x = true; bool類型的默認值是false。C#語言中,使用char/Char類定義字符,并且字符只能用單引號括起來char ch1 = m; Char ch1 = m; M5男bool5.2“ch”檢查下面這些是否是合法的字符字符類型語法student1student1.Name = “m”Na

4、me=“m”引用類型存儲對值的引用student1studnet2Name=“n”student2.Name = “n”student2 = student1引用類型Name=“m”兩個變量都發生變化student1studnet2 .NET中預定義的兩種引用類型類型說明objectobject類型在.NET Framework中是Object的別名。在C#的統一類型系統中,所有類型(預定義類型、用戶定義類型、引用類型和值類型)都是直接或間接從Object繼承的stringstring類型表示零或更多Unicode字符組成的序列 值類型與引用類型的區別在這里在哪里2 常量和變量 定義:不能被改

5、變的量323680 x2F3.143.14F3.14MA“Hello World”turefalse常量const double PI = 3.1415926 ;常量的分類字面常量 符號常量 const 引入 在數學中,我們對變量的概念有一定的了解和認識,如y=x2,其中,x、y都是變量。 那么,在C#中的變量具體是指一個什么概念呢?其實,一個變量就是存儲區(內存)中的一個存儲單元。變量 變量類型 變量名 = 數值; 變量類型 變量名; 變量名 = 數值;int money = 1000;int money;money = 1000 ;變量的聲明變量類型 變量名1,變量名2,變量名n;int

6、money1,money2,moneyn;語法1、字母2、下劃線_首字母任意多的:1、數字2、字母3、下劃線_其余部分變量名C#語言中,變量命名要符合一定規則money,score,name,sex變量基本要求:簡短且能清楚地表明變量的作用,通常第一個單詞的首字母小寫,其后單詞的首字母大寫。例如:myScore 變量的命名規則變量的初始化賦值運算符將右邊的數賦值給左邊的變量變量初始化的3種方法 單獨初始化變量 int sum; sum = 368; int sum = 368; int a,b,c,d,e; a = b = c = d = e = 0;聲明時初始化變量同時初始化多個變量3 表達

7、式與運算符什么是表達式 引入 表達式是由運算符和操作數組成的。+、-、*和/等都是運算符,操作數包括常量、變量和表達式等。 1 4 = 4x * y = z符號 數運算符操作數按運算符功能 按操作數個數 單目運算符 雙目運算符 三目運算符 算術運算符 自增自減運算符賦值運算符 關系運算符 邏輯運算符 位運算符 條件運算符等 運算符的分類主要內容 算術運算符 自增自減運算符 賦值運算符 關系運算符 邏輯運算符 位運算符 移位運算符 條件運算符0102030405060708 運算符的優先級與結合性09 表達式中的類型轉換09操作數操作數運算符+-*/%算術運算符基本的算術運算class Test

8、 public static void Main(String args) double i = -6.5; int j = -2; double result = i % j; Console.WriteLine(result); 使用%運算符時的注意事項 使用%運算符時,返回結果的符號與左操作數相同- 0.5b = a+;相當于:b = a;a+;先取值,后自增b = -a;相當于:-a;b = a;先自減,后取值自增自減運算符 自增自減運算符不能作用于常量或者表達式=量值做讀取操作,可以是常量、表達式做寫的操作,被賦予等號右側的值簡單賦值運算符a += 3a &=3a = 3a %= b

9、-3a = a + 3 a = a & 3a = a 3a = a % (b-3)算術賦值此處千萬不能寫成:a = a % b - 3位賦值移位賦值復合賦值運算復合賦值運算符 復合賦值運算符又稱為帶運算的賦值運算符,它其實是將賦值運算符與其他運算符合并成一個運算符來使用,從而同時實現兩種運算符的效果。 大于 等于 =不等于 !=大于或等于 =小于或等于 =小于 40 ? 人到中年了! : 這正是黃金奮斗的年齡; 簡稱含義運算符數目結合性單單目+, -, ! ,單目算算術*, /, %雙目+, -雙目位移位雙目關關系, =, , 100) break; sum += i;修改(1)break語句

10、通常應用在switch、while、dowhile或for循環中(2)break一般與if語句搭配使用,用來跳出循環“死循環”continue的使用(1)continue語句通常應用在while、dowhile或for循環中(2)continue一般與if語句搭配使用,用來開始一次新的循環?2+4+6+8+100=?int i,sum=0;for (i = 1; i = 100; i+) if( i%2=1) continue; sum += i;break和continue的區別breakcontinue使用goto語句實現1到100的累加。goto語句的使用goto Lable; Cons

11、ole.WriteLine(“the message before Label”);Lable: Console.WriteLine(“the Label message”);goto 標簽;語法改變代碼執行順序goto使用說明 goto語句可以忽略當前程序的邏輯,直接使程序跳轉到某一語句執行,有時非常方便,但是也正是由于goto語句的這種特性,在程序開發中一般不主張使用goto語句, 以免造成程序流程的混亂,使理解和調試程序都產生困難。7 數組主要內容 一維數組01 多維數組02 不規則數組03 數組與System.Array04 常用數組操作05 使用foreach語句遍歷數組06一維數組

12、 引入 一維數組是具有相同數據類型的一組數據的線性集合,在程序中可以通過一維數組來完成一組相同數據類型數據的線性處理。 type arrayName;語法一維數組初始化的3種方法 初始化一維數組為默認值 int arr =new int5;int arr=new int51,2,3,4,5; string arrStr=Sun, Mon, Tue, Wed, Thu, Fri, Sat;初始化一維數組為指定值省略長度初始化數組多維數組 引入 多維數組是指可以用多個下標訪問的數組,聲明時,方括號內加逗號,就表明是多維數組,有n個逗號,就是n+1維數組。 type, arrayName;語法多維數

13、組初始化的2種方法 初始化二維數組為默認值 int, arr =new int3,2;int, arr=new int3,21,2,3,4,5,6;初始化二維數組為指定值不規則數組int a = new int3;a0 = new int5; a1 = new int3;a2 = new int4;語法數組與System.Array方法說明Copy將數組中的指定元素復制到另一個Array中CopyTo從指定的目標數組索引處開始,將當前一位數組中的所有元素復制到另一個一位數組中Exists判斷數組中是否包含指定的元素GetLength獲取Array的指定維中的元素數GetValue獲取Array

14、中指定位置的值Reverse反轉一維Array中元素的順序SetValue設置Array中指定位置的元素Sort對一維Array數組元素進行排序 C#中的數組是由System.Array類派生而來的引用對象。 數組常用操作 一維數組的輸入與輸出 使用單層循環實現 使用雙層嵌套循環實現 排序算法:冒泡排序等二維數組的輸入與輸出數組的排序使用foreach語句遍歷數組foreach(【類型】 【迭代變量名】 in 【集合表達式】)語句語法string strNames = 進貨管理, 銷售管理, 庫存管理, 系統設置 ; foreach (string str in strNames) Conso

15、le.Write(str + );示例小結 本章對C#語言基礎知識進行了詳細講解,學習本章時,讀者應該重點掌握變量和常量的使用、各種運算符的使用、流程控制語句的使用以及數組的基本操作。本章是C#程序開發的基礎,因此,我們一定要熟練掌握。上機指導 通過本章所學嘗試制作一個簡單的客車售票系統,假設客車的坐位數是9行4列,使用一個二維數組記錄客車售票系統中的所有座位號,并在每個座位號上都顯示“【有票】”,然后用戶輸入一個坐標位置,按回車鍵,即可將該座位號顯示為“【已售】”。第3章 面向對象編程基礎01 面向對象概念02 類03 方法1 面向對象概念對象、類、實例化對象=(算法+數據結構)程序=(對象

16、+對象+)封裝面向對象程序設計語言的三大原則繼承面向對象程序設計語言的三大原則多態面向對象程序設計語言的三大原則 繼承中提到了父類和子類,其實將父類對象應用于子類的特征就是多態。依然以圖形類來說明多態,每個圖形都擁有繪制自己的能力,這個能力可以看作是該類具有的行為,如果將子類的對象統一看作是父類的實例對象,這樣當繪制任何圖形時,可以簡單地調用父類也就是圖形類繪制圖形的方法即可繪制任何圖形,這就是多態最基本的思想。2 類主要內容 類的概念 類的聲明 類的成員 構造函數和析構函數 對象的創建及使用 this關鍵字 類與對象的關系01020304050607 類是一種數據結構,它可以包含數據成員(常

17、量和域)、函數成員(方法、屬性、事件、索引器、運算符、構造函數和析構函數)和嵌套類型。 類(class)實際上是對某種類型的對象定義變量和方法的原型,它表示對現實生活中一類具有共同特征的事物的抽象,是面向對象編程的基礎。類的概念類修飾符 class 類名類的聲明public class Car public int number; public string color; private string brand;語法類的成員 字段 常量或者變量 enum 枚舉名 list1=value1, list2=value2, list3=value3, listN=valueN, 【修飾符】【類型】

18、【屬性名】 get get訪問器體 set set訪問器體 枚舉屬性構造函數和析構函數 構造函數 構造函數是在創建給定類型的對象時執行的類方法,構造函數具有與類相同的名稱,它通常初始化新對象的數據成員。 public Program() z = x + y; 析構函數是以類名加來命名的。.NETFramework類庫有垃圾回收功能,當某個類的實例被認為是不再有效,并符合析構條件時,.NETFramework類庫的垃圾回收功能就會調用該類的析構函數實現垃圾回收。Program()/析構函數 Console.WriteLine(析構函數自動調用);析構函數對象的創建及使用 對象的創建Test te

19、st=new Test();Test test=new Test(a);cStockInfo stockInfo = new cStockInfo();stockInfo.FullName = 筆記本電腦;stockInfo.ShowGoods();訪問對象的屬性和行為 對象的引用Book book;或:Book book=new Book(); 對象的銷毀this關鍵字 C#語言中可以使用this關鍵字來代表本類對象的引用,this關鍵字被隱式地用于引用對象的成員變量和方法。private void setName(String name) =name; 類與對象的關系 類是具有相同或相似結

20、構、操作和約束規則的對象組成的集合,而對象是某一類的具體化實例,每一個類都是具有某些共同特征的對象的抽象。3 方法主要內容 方法的聲明 方法的參數 靜態方法與實例方法 方法的重載01020304方法的聲明修飾符 返回值類型 方法名(參數列表) /方法的具體實現;public void ShowGoods() Console.WriteLine(庫存商品名稱:); Console.WriteLine(FullName);語法方法的參數 值參數 值參數就是在聲明時不加修飾的參數,它表明實參與形參之間按值傳遞。由于是值類型的傳遞方式,所以,在方法中對形參的修改并不會影響實參。private int

21、Add(int x, int y) x = x + y; return x;/返回x ref參數使形參按引用傳遞,其效果是:在方法中對形參所做的任何更改都將反映在實參中。如果要使用ref參數,則方法聲明和方法調用都必須顯式使用ref關鍵字。private int Add(ref int x, int y) x = x + y; return x;/返回xref參數方法的參數 out參數 out關鍵字用來定義輸出參數,它會導致參數通過引用來傳遞,使用out關鍵字定義的參數,不用進行賦值即可使用。如果要使用out參數,則方法聲明和方法調用都必須顯式使用out關鍵字。private int Add(

22、int x, int y,out int z) z = x + y; return z;/返回z方法的參數 params參數 聲明方法時,如果有多個相同類型的參數,可以定義為params參數。params參數是一個一維數組,主要用來指定在參數數目可變時所采用的方法參數。private int Add(params int x) int result = 0; for (int i = 0; i x.Length; i+) result += xi; return result;靜態方法與實例方法 靜態方法 靜態方法不對特定實例進行操作,在靜態方法中引用this會導致編譯錯誤,調用靜態方法時,使

23、用類名直接調用。public static int Add(int x, int y) return x + y; static void Main(string args) Console.WriteLine(0+1=2, 23, 34, Program.Add(23, 34); Console.ReadLine(); 靜態方法與實例方法 實例方法是對類的某個給定的實例進行操作,使用實例方法時,需要使用類的對象調用,而且可以用this來訪問該方法。public int Add(int x, int y)加 return x + y; static void Main(string args)

24、 Program pro = new Program(); Console.WriteLine(0+1=2, 23, 34, pro.Add(23, 34); Console.ReadLine(); 實例方法方法的重載 方法重載是指方法名相同,但參數的數據類型、個數或順序不同的方法。public static int Add(int x, int y) return x + y; public double Add(int x, double y) return x + y; public int Add(int x, int y, int z) return x + y + z; 小結 本章

25、主要對面向對象編程的基礎知識進行了詳細講解,具體講解時,首先介紹了對象、類與實例化這3個基本概念,以及面向對象程序設計的3大基本原則;然后重點對類和對象,以及方法的使用進行了詳細講解。學習本章內容時,一定要重點掌握類與對象的創建及使用,并熟練掌握常見的幾種方法參數類型,以及靜態方法與實例方法的主要區別。上機指導 在進銷存管理系統中,商品的庫存信息有很多種類,比如商品型號、商品名稱、商品庫存量等。在面向對象編程中,這些商品的信息可以存儲到屬性中,然后當需要使用這些信息時,再從對應的屬性中讀取出來。這里要求定義庫存商品結構,并輸出庫存商品的信息。第4章 面向對象編程進階01 類的繼承與多態02 結

26、構與接口03 集合與索引器04 異常處理05 委托和匿名方法06 事件07 預處理指令08 泛型1 類的繼承與多態繼承 繼承的基本思想是基于某個基類的擴展,制定出一個新的派生類,派生類可以繼承基類原有的屬性和方法,也可以增加原來基類所不具備的屬性和方法,或者直接重寫基類中的某些方法。class Test2: Testbase關鍵字 base關鍵字用于從派生類中訪問基類的成員,它主要有兩種使用形式,分別如下:調用基類上已被其他方法重寫的方法。指定創建派生類實例時應調用的基類構造函數。基類public Goods(string tradecode, string fullname) TradeCo

27、de = tradecode; FullName = fullname;派生類public JHInfo(string jhid, string tradecode, string fullname) : base(tradecode, fullname) JHID = jhid;繼承中的構造函數和析構函數 多態是面向對象編程的基本特征之一,它使得派生類的實例可以直接賦予基類的對象,然后直接就可以通過這個對象調用派生類的方法。C#中,類的多態性是通過在派生類中重寫基類的虛方法來實現的。多態基類public virtual void Move() Console.WriteLine(0都可以移動

28、, Name); 派生類public override void Move() Console.WriteLine(0在鐵軌上行駛,Name); 抽象類與抽象方法 如果一個類不與具體的事物相聯系,而只是表達一種抽象的概念或行為,僅僅是作為其派生類的一個基類,這樣的類就可以聲明為抽象類,在抽象類中聲明方法時,如果加上abstract關鍵字,則為抽象方法,抽象方法不提供具體的實現。public abstract class TestClass public abstract void AbsMethod();/抽象方法密封類與密封方法 為了避免濫用繼承,C#中提出了密封類的概念。密封類可以用來限制

29、擴展性,如果密封了某個類,則其他類不能從該類繼承;如果密封了某個成員,則派生類不能重寫該成員的實現。 如果類的方法聲明中包含sealed修飾符,則稱該方法為密封方法。密封方法只能用于對基類的虛方法進行實現,因此,聲明密封方法時,sealed修飾符總是和override修飾符同時使用。public sealed class JHInfo : Information /密封類 /將基類的虛方法重寫,并設置為密封方法 public sealed override void ShowInfo() Console.WriteLine(進貨信息:n + Code + + Name); 2 結構與接口 結構

30、是一種值類型,通常用來封裝一組相關的變量,結構中可以包括構造函數、常量、字段、方法、屬性、運算符、事件和嵌套類型等。結構實際是將多個相關的變量包裝成為一個整體使用。在結構體中的變量,可以是相同、部分相同,或完全不同的數據類型。 C#中使用struct關鍵字來聲明結構。結構結構修飾符 struct 結構名語法修飾符 interface 接口名稱 :繼承的接口列表 接口內容;接口語法 接口提出了一種契約(或者說規范),讓使用接口的程序設計人員必須嚴格遵守接口提出的約定。接口可以包含方法、屬性、索引器和事件作為成員,但是并不能設置這些成員的具體值,也就是說,只能定義。 C#中聲明接口時,使用inte

31、rface關鍵字。接口的實現與繼承 定義 interface Information string Code get; set; void ShowInfo(); public class JHInfo : Information/繼承接口,定義進貨類 string code = ; string name = ; public string Code/實現編號屬性 get return code; set code = value; public void ShowInfo()/實現方法,輸出進貨信息 Console.WriteLine( Code + + Name); 實現說明:接口中的成

32、員默認是公共的,因此,不允許加訪問修飾符。顯式接口成員實現 如果類實現兩個接口,并且這兩個接口包含具有相同簽名的成員,那么在類中實現該成員將導致兩個接口都使用該成員作為它們的實現,然而,如果兩個接口成員實現不同的功能,那么這可能會導致其中一個接口的實現不正確或兩個接口的實現都不正確,這時可以顯式地實現接口成員,即創建一個僅通過該接口調用并且特定于該接口的類成員。顯式接口成員實現是使用接口名稱和一個句點命名該類成員來實現的。抽象類與接口抽象類和接口的區別主要有以下幾點:它們的派生類只能繼承一個基類,即只能直接繼承一個抽象類,但可以繼承任意多個接口。抽象類中可以定義成員的實現,但接口中不可以。抽象

33、類中可以包含字段、構造函數、析構函數、靜態成員或常量等,接口中不可以。抽象類中的成員可以是私有的(只要它們不是抽象的)、受保護的、內部的或受保護的內部成員(受保護的內部成員只能在應用程序的代碼或派生類中訪問),但接口中的成員默認是公共的,定義時不能加修飾符。3 集合與索引器集合語法 集合類似于數組,是一組組合在一起的類型化對象,可以通過遍歷獲取其中的每個元素。接口說明ICollection定義所有非泛型集合的大小、枚舉數和同步方法IComparer公開一種比較兩個對象的方法IDictionary表示鍵/值對的非通用集合IDictionaryEnumerator枚舉非泛型字典的元素IEnumer

34、able公開枚舉數,該枚舉數支持在非泛型集合上進行簡單迭代IEnumerator支持對非泛型集合的簡單迭代IList表示可按照索引單獨訪問的對象的非泛型集合ArrayList集合語法 ArrayList類是一種非泛型集合類,它可以動態的添加和刪除元素。ArrayList類相當于一種高級的動態數組,它是Array類的升級版本,但它并不等同于數組。ArrayList list = new ArrayList(); list.Add(筆記本電腦);list.Add(華為榮耀4X);list.Add(iPad平板電腦);foreach (string name in list) Console.Wri

35、teLine(name);索引器【修飾符】 【類型】 this【參數列表】 get get訪問器體 set set訪問器體public string thisint index get return arrStrindex; set arrStrindex = value; 語法 C#語言支持一種名為索引器的特殊“屬性”,它能夠通過引用數組元素的方式來引用對象。4 異常處理異常處理類語法System.Exception異常處理語句語法 trycatchfinally語句try 被監控的代碼catch(異常類名 異常變量名) 異常處理finally 程序代碼 throw語句throw ExObj

36、ect5 委托和匿名方法委托語法 C#中的委托(Delegate)是一種引用類型,該引用類型與其它引用類型有所不同,在委托對象的引用中存放的不是對數據的引用,而是存放對方法的引用,即在委托的內部包含一個指向某個方法的指針。通過使用委托把方法的引用封裝在委托對象中,然后將委托對象傳遞給調用引用方法的代碼。【修飾符】 delegate 【返回類型】 【委托名稱】 (【參數列表】)語法匿名方法 匿名方法允許一個與委托關聯的代碼被內聯地寫入使用委托的位置,這使得代碼對于委托的實例很直接。除了這種便利之外,匿名方法還共享了對本地語句包含的函數成員的訪問。delegate(【參數列表】) 【代碼塊】語法6

37、 事件主要內容 委托的發布和訂閱 事件的發布和訂閱 EventHandler類 Windows事件概述01020304委托的發布和訂閱語法 通過委托實現事件處理的過程,通常需要以下4個步驟:(1)定義委托類型,并在發布者類中定義一個該類型的公有成員。(2)在訂閱者類中定義委托處理方法。(3)訂閱者對象將其事件處理方法鏈接到發布者對象的委托成員(一個委托類型的引用)上。(4)發布者對象在特定的情況下“激發”委托操作,從而自動調用訂閱者對象的委托處理方法。事件的發布和訂閱語法 C#提供了專門的事件處理機制,以保證事件訂閱的可靠性,其做法是在發布委托的定義中加上event關鍵字,其它代碼不變。pub

38、lic event RingEvent OnBellSound;EventHandler類 在事件發布和訂閱的過程中,定義事件的類型(即委托類型)是一件重復性的工作,為此,.NET類庫中定義了一個EventHandler委托類型,并建議盡量使用該類型作為事件的委托類型。public delegate void EventHandler(object sender,EventArgs e);Windows事件概述 事件在Windows這樣的圖形界面程序中有著極其廣泛的應用,事件響應是程序與用戶交互的基礎。用戶的絕大多數操作,如移動鼠標、單擊鼠標、改變光標位置、選擇菜單命令等,都可以觸發相關的控件

39、事件。public Form1() InitializeComponent(); button1.Click+= new EventHandler(button1_Click);private void button1_Click(object sender,EventArgs e) this.Close();7 預處理指令主要內容 #region和#endregion #defined和#undef #if、#elif、#else和#endif #warning和#error01020304 #line05在使用Visual Studio代碼編輯器的大綱顯示功能時,指定可展開或折疊的代碼塊#

40、region和#endregion #define和#undef定義和取消符號,通常用于為#if指令傳遞條件表達式,#define的結果為true,#undef的結果為false#define DEBUG#undef DEBUG 語法使用#define和#undef定義和取消符號時,只能在代碼文件的頂部(所有引用命名空間的代碼之前)定義,如果在其他區域定義,會出現如圖所示的錯誤提示。 #if、#elif、#else和#endif主要用來判斷符號是否已經定義。結合使用#if、#else、#elif、#endif指令,可以根據一個或多個符號是否存在來包含或排除代碼,這在編譯調試版本的代碼或針對特定

41、配置進行代碼編譯時,非常有用。#if塊不能與#region塊重疊,但是,可以將#region塊嵌套在#if塊內,或將#if塊嵌套在#region塊內。#if指令#elif指令#else指令#endif指令if語句else if語句else語句if語句的結尾 #warning 生成警告信息#warning和#error#error 生成錯誤信息 #line提示8 泛型主要內容 類型參數T 泛型接口 泛型方法010203類型參數T 泛型的類型參數T可以看作是一個占位符,它不是一種類型,它僅代表了某種可能的類型。在定義泛型時,T出現的位置可以在使用時用任何類型來代替。類型參數T的命名準則如下:使用描

42、述性名稱命名泛型類型參數,除非單個字母名稱完全可以讓人了解它表示的含義,而描述性名稱不會有更多的意義。例如,使用代表一定意義的單詞作為類型參數T的名稱,代碼如下:public interface IStudentpublic delegate void ShowInfo將T作為描述性類型參數名的前綴。例如,使用T作為類型參數名的前綴,代碼如下:public interface IStudent T Sex get; 泛型接口 聲明泛型接口時,與聲明一般接口的唯一區別是增加了一個。一般來說,聲明泛型接口與聲明非泛型接口遵循相同的規則。泛型類型聲明所實現的接口必須對所有可能的構造類型都保持唯一,否

43、則就無法確定該為某些構造類型調用哪個方法。interface 【接口名】 【接口體】語法泛型方法 泛型方法是在聲明中包括了類型參數T的方法。泛型方法可以在類、結構或接口聲明中聲明,這些類、結構或接口本身可以是泛型或非泛型。如果在泛型類型聲明中聲明泛型方法,則方法體可以同時引用該方法的類型參數T和包含該方法的聲明的類型參數T。【修飾符】 void 【方法名】 【方法體】語法小結 本章對面向對象編程的高級知識進行了詳細講解,學習本章內容,重點需要掌握的是類的繼承與多態、接口的使用、集合以及泛型的使用,難點是委托和事件的應用,另外,對結構、索引器、異常處理和預處理指令等知識點,熟悉它們的使用方法即可

44、。上機指導 模擬實現輸出進銷存管理系統中的每月銷售明細,運行程序,輸入要查詢的月份,如果輸入的月份正確,則顯示本月商品銷售明細;如果輸入的月份不存在,則提示“該月沒有銷售數據或者輸入的月份有誤!”信息;如果輸入的月份不是數字,則顯示異常信息。第5章 Windows應用程序開發01 開發應用程序的步驟02 Windows窗體介紹03 Windows控件的使用04 菜單、工具欄與狀態欄05 對話框06 多文檔界面(MDI)07 打印與打印預覽1 開發應用程序的步驟開發應用程序的步驟 使用C#開發應用程序時,一般包括創建項目、界面設計、設置屬性、編寫程序代碼、保存項目、程序運行等6個步驟。2 Win

45、dows窗體介紹主要內容 添加窗體 設置啟動窗體 設置窗體屬性 窗體常用方法01020304 窗體常用事件05 如果要向項目中添加一個新窗體,可以在項目名稱上單擊鼠標右鍵,在彈出的快捷菜單中選擇“添加”/“Windows窗體”或者“添加”/“新建項”菜單,打開“添加新項”對話框,選擇“Windows窗體”選項,輸入窗體名稱后,單擊“添加”按鈕,即可向項目中添加一個新的窗體。添加窗體public static void Run (Form mainForm)設置啟動窗體語法 向項目中添加了多個窗體以后,如果要調試程序,必須要設置首先運行的窗體,這時就需要設置項目的啟動窗體。項目的啟動窗體是在Pr

46、ogram.cs文件中設置的,在Program.cs文件中改變Run方法的參數,即可實現設置啟動窗體。 Run方法用于在當前線程上開始運行標準應用程序,并使指定窗體可見。設置窗體屬性更換窗體的圖標Icon屬性隱藏窗體的標題欄FormBorderStyle屬性控制窗體的顯示位置StartPosition屬性修改窗體的大小Size屬性設置窗體背景圖片BackgroundImage屬性控制窗體總在最前TopMost屬性窗體常用方法 Show方法顯示窗體public void Show()public void Show(IWin32Window owner) Hide方法隱藏窗體public voi

47、d Hide() Close方法關閉窗體public void Close()窗體常用事件 Load事件窗體加載private void Form1_Load(object sender, EventArgs e) FormClosing事件窗體關閉時觸發private void Form1_FormClosing(object sender, FormClosingEventArgs e)3 Windows控件的使用主要內容 Control基類 Label Button TextBox01020304 CheckBox05 RadioButton06 RichTextBox07 ComboB

48、ox08 ListBox09 GroupBox10 ListView11 TreeView12 ImageList13 Timer14Control基類語法 Control類是定義控件的基類,控件是帶有可視化表示形式的組件。Control類實現向用戶顯示信息的類所需的最基本功能,它處理用戶通過鍵盤和指針設備所進行的輸入,另外,它還處理消息路由和安全。Control類的成員可以通過Visual Studio幫助查看。Label控件語法 Label控件,又稱為標簽控件,它主要用于顯示用戶不能編輯的文本,標識窗體上的對象(例如,給文本框、列表框添加描述信息等),另外,也可以通過編寫代碼來設置要顯示的

49、文本信息。1設置標簽文本label1.Text = 用戶名:; 2顯示/隱藏控件label1.Visible = true;Button控件 Button控件,又稱為按鈕控件,它表允許用戶通過單擊來執行操作。Button控件既可以顯示文本,也可以顯示圖像,當該控件被單擊時,它看起來像是被按下,然后被釋放。Button控件最常用的是Text屬性,其中,Text屬性用來設置Button控件顯示的文本,Click事件用來指定單擊Button控件時執行的操作。TextBox控件 TextBox控件,又稱為文本框控件,它主要用于獲取用戶輸入的數據或者顯示文本,它通常用于可編輯文本,也可以使其成為只讀控件

50、。文本框可以顯示多行,開發人員可以使文本換行以便符合控件的大小。創建只讀文本框ReadOnly屬性創建密碼文本框 PasswordChar屬性創建多行文本框 Multiline屬性響應文本框的文本更改事件 TextChanged事件CheckBox控件 復選框控件(CheckBox控件)用來表示是否選取了某個選項條件,常用于為用戶提供具有是/否或真/假值的選項。判斷復選框是否選中CheckState屬性響應復選框的選中狀態更改事件 CheckStateChanged事件RadioButton控件 單選按鈕控件(RadioButton控件)為用戶提供由兩個或多個互斥選項組成的選項集。當用戶選中某

51、單選按鈕時,同一組中的其他單選按鈕不能同時選定。判斷單選按鈕是否選中Checked屬性響應單選按鈕選中狀態更改事件 CheckedChanged事件RichTextBox控件 RichTextBox控件,又稱為有格式文本框控件,它主要用于顯示、輸入和操作帶有格式的文本,比如它可以實現顯示字體、顏色、鏈接、從文件加載文本及嵌入的圖像、撤消和重復編輯操作以及查找指定的字符等功能。顯示滾動條ScrollBars屬性設置字體屬性 SelectionFont屬性和SelectionColor屬性顯示為超鏈接樣式 Text屬性和LinkClicked事件設置段落格式 SelectionBullet、Sel

52、ectionIndent屬性ComboBox控件 ComboBox控件,又稱為下拉組合框控件,它主要用于在下拉組合框中顯示數據,該控件主要由兩部分組成,其中,第一部分是一個允許用戶輸入列表項的文本框;第二部分是一個列表框,它顯示一個選項列表,用戶可以從中選擇項。設置下拉組合框DropDownStyle屬性響應下拉組合框的選項值更改事件 SelectedValueChanged事件ListBox控件 ListBox控件,又稱為列表控件,它主要用于顯示一個列表,用戶可以從中選擇一項或多項,如果選項總數超出可以顯示的項數,則控件會自動添加滾動條。添加和移除項Items屬性的Add方法和Remove方

53、法總顯示滾動條 HorizontalScrollbar屬性和ScrollAlwaysVisible屬性選擇多項 SelectionMode屬性GroupBox控件 GroupBox控件,又稱為分組框控件,它主要為其他控件提供分組,并且按照控件的分組來細分窗體的功能,其在所包含的控件集周圍總是顯示邊框,而且可以顯示標題,但是沒有滾動條。 GroupBox控件最常用的是Text屬性,用來設置分組框的標題,例如,下面代碼用來為GroupBox控件設置標題“系統登錄”,代碼如下:groupBox1.Text = 系統登錄;ListView控件 ListView控件,又稱為列表視圖控件,它主要用于顯示帶

54、圖標的項列表,其中可以顯示大圖標、小圖標和數據。使用ListView控件可以創建類似Windows資源管理器右邊窗口的用戶界面。添加項Items屬性的Add方法移除項 Items屬性的RemoveAt方法或Clear方法選擇項 Selected屬性為項添加圖標 SmallImageList、LargeImageList或StateImageList屬性啟用平鋪視圖 View屬性為項分組 Group屬性TreeView控件 TreeView控件,又稱樹控件,它可以為用戶顯示節點層次結構,而每個節點又可以包含子節點,包含子節點的節點叫父節點。添加和刪除樹節點Nodes屬性的Add、Remove方法

55、獲取選中節點 AfterSelect事件、Node.Text屬性為節點設置圖標 ImageList、ImageIndex和SelectedImageIndex屬性ImageList組件 ImageList組件,又稱為圖片存儲組件,它主要用于存儲圖片資源,然后在控件上顯示出來,這樣就簡化了對圖片的管理。ImageList組件的主要屬性是Images,它包含關聯控件將要使用的圖片。每個單獨的圖片可以通過其索引值或鍵值來訪問;另外,ImageList組件中的所有圖片都將以同樣的大小顯示,該大小由其ImageSize屬性設置,較大的圖片將縮小至適當的尺寸。屬性說明ColorDepth獲取圖像列表的顏色

56、深度Images獲取此圖像列表的ImageList.ImageCollectionImageSize獲取或設置圖像列表中的圖像大小ImageStream獲取與此圖像列表關聯的ImageListStreamerTimer組件 Timer組件又稱作計時器組件,它可以定期引發事件,時間間隔的長度由其Interval屬性定義,其屬性值以毫秒為單位。若啟用了該組件,則每個時間間隔引發一次Tick事件,開發人員可以在Tick事件中添加要執行操作的代碼。成員說明Enabled屬性獲取或設置計時器是否正在運行Interval屬性獲取或設置在相對于上一次發生的Tick事件引發Tick事件之前的時間(以毫秒為單位

57、)Start方法啟動計時器Stop方法停止計時器Tick事件當指定的計時器間隔已過去而且計時器處于啟用狀態時發生使用Timer組件實現一個簡單的倒計時程序。4 菜單、工具欄與狀態欄菜單語法 菜單控件使用MenuStrip控件來表示,它主要用來設計程序的菜單欄,C#中的MenuStrip控件支持多文檔界面、菜單合并、工具提示和溢出等功能,開發人員可以通過添加訪問鍵、快捷鍵、選中標記、圖像和分隔條來增強菜單的可用性和可讀性。工具欄語法 工具欄控件使用ToolStrip控件來表示,使用該控件可以創建具有WindowsXP、Office、Internet Explorer或自定義的外觀和行為的工具欄及

58、其他用戶界面元素,這些元素支持溢出及運行時項重新排序。狀態欄語法 狀態欄控件使用StatusStrip控件來表示,它通常放置在窗體的最底部,用于顯示窗體上一些對象的相關信息,或者可以顯示應用程序的信息。5 對話框主要內容 消息框 窗體對話框 打開對話框控件 另存為對話框控件01020304 瀏覽文件夾對話框控件05 顏色對話框控件06 字體對話框控件07消息框語法 消息對話框是一個預定義對話框,主要用于向用戶顯示與應用程序相關的信息以及來自用戶的請求信息,在.NET框架中,使用MessageBox類表示消息對話框,通過調用該類的Show方法可以顯示消息對話框,該方法有多種重載形式。public

59、 static DialogResult Show(string text)public static DialogResult Show(string text,string caption, MessageBoxButtons buttons,MessageBoxIcon icon)語法MessageBox.Show(確定要退出當前系統嗎?, 警告, MessageBoxButtons.YesNo, MessageBoxIcon.Warning);窗體對話框 窗體是用戶設計程序外觀的操作界面,根據不用的需求,可以使用不用類型的Windows窗體。根據Windows窗體的顯示狀態,可以分為模

60、式窗體和非模式窗體。1模式窗體 模式窗體就是使用ShowDialog方法顯示的窗體,它在顯示時,如果作為激活窗體,則其他窗體不可用,只有在將模式窗體關閉之后,其他窗體才能恢復可用狀態。Form2 frm = new Form2();frm.ShowDialog();2非模式窗體 非模式窗體就是使用Show方法顯示的窗體,一般的窗體都是非模式窗體。非模式窗體在顯示時,如果有多個窗體,用戶可以單擊任何一個窗體,單擊的窗體將立即成為激活窗體并顯示在屏幕的最前面。Form2 frm = new Form2();frm.Show();打開對話框控件語法 OpenFileDialog控件表示一個通用對話框

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論