版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、網(wǎng)絡(luò)與通信程序設(shè)計(jì)(C#)課程簡(jiǎn)介與目標(biāo)課程簡(jiǎn)介本課程學(xué)習(xí)和討論基于.NET架構(gòu),選用C#語(yǔ)言進(jìn)行計(jì)算機(jī)網(wǎng)絡(luò)通信程序以及計(jì)算機(jī)接口間信息交換程序開發(fā)的原理和方法。課程目標(biāo)了解.NET架構(gòu)掌握C#的語(yǔ)法、編程方法以及相關(guān)工具的使用了解網(wǎng)絡(luò)通信、接口通信編程的基本原理掌握網(wǎng)絡(luò)應(yīng)用程序、通信應(yīng)用程序設(shè)計(jì)開發(fā)技術(shù)了解軟件工程管理的基本知識(shí)課程教學(xué)與考核學(xué)習(xí)方法理論學(xué)習(xí)+編程實(shí)踐網(wǎng)絡(luò)學(xué)習(xí)(MSDN、CSDN、搜索引擎)實(shí)踐,實(shí)踐,實(shí)踐考核方式平時(shí)考勤、實(shí)驗(yàn)、綜合設(shè)計(jì)卷面考試教材與教參教材金華. C#網(wǎng)絡(luò)編程技術(shù)教程M. 人民郵電出版社參考書目馬駿. C#程序設(shè)計(jì)教程M. 人民郵電出版社張曉明. C#網(wǎng)絡(luò)
2、通信程序設(shè)計(jì)M. 清華大學(xué)出版社劉瑞新. C#網(wǎng)絡(luò)編程及應(yīng)用M. 機(jī)械工業(yè)出版社吳晨. C#網(wǎng)絡(luò)與通信程序設(shè)計(jì)案例精講M. 清華大學(xué)出版社鄭阿奇. C#網(wǎng)絡(luò)編程M. 電子工業(yè)出版社美Michael McMillan. 數(shù)據(jù)結(jié)構(gòu)與算法(C#語(yǔ)言描述)M. 人民郵電出版社美Colin Campbell. 設(shè)計(jì)模式-.NET并行編程M. 清華大學(xué)出版社包善東. 更鋒利的C#代碼M. 清華大學(xué)出版社李江全. Visual C#.NET 串口通信及測(cè)控應(yīng)用典型實(shí)例M. 電子工業(yè)出版社Wei-Meng Lee. Practical .Net 2.0 Networking ProjectsM. Apress
3、教學(xué)安排第一章 .NET平臺(tái)及C#簡(jiǎn)介.NET平臺(tái) .NET是微軟公司推出的一個(gè)全新概念的技術(shù),它代表了一個(gè)集合、一個(gè)環(huán)境和一個(gè)可以作為平臺(tái)支持下一代Internet的可編程結(jié)構(gòu)。計(jì)算機(jī)與程序語(yǔ)言1957前,插拔、開關(guān)、紙帶、機(jī)器語(yǔ)言、匯編1957,IBM,F(xiàn)ORTRAN,科學(xué)與工程計(jì)算1969,湯普森,Unix;里奇,為Unix開發(fā)出C1970,阿倫凱,Smalltalk語(yǔ)言,一切皆對(duì)象(萬(wàn)能細(xì)胞)1975,微軟商化M.BASIC,發(fā)家1983,C+面世,”帶類的C”,適用于編寫大型程序1985,Windows投放市場(chǎng),1991年成為贏家,推出VB1992,高斯林,Oak語(yǔ)言,在C+基礎(chǔ)上吸
4、收Smalltalk思想1995,高斯林,Oak改名為Java,互聯(lián)網(wǎng)編程(跨系統(tǒng),跨平臺(tái))2001,微軟輸?shù)鬔ava官司,推出C#C的一家CSmalltalkC+JavaC#C#語(yǔ)言簡(jiǎn)介 C#的背景:從C和C+演變而來的,結(jié)合了C/C+的強(qiáng)大功能、Java的面向?qū)ο筇匦院蚔isual Basic的易用性,從而成為一種簡(jiǎn)單的類型安全、面向?qū)ο蟮木幊陶Z(yǔ)言,是.NET公共語(yǔ)言運(yùn)行環(huán)境的內(nèi)置語(yǔ)言。C#的特點(diǎn):語(yǔ)法簡(jiǎn)潔面向?qū)ο笤O(shè)計(jì)與Web緊密結(jié)合完整的安全性和錯(cuò)誤處理版本控制兼容性,靈活性 C#與C+的比較編譯目標(biāo):C+代碼直接編譯為本地可執(zhí)行代碼,C#默認(rèn)編譯為中間語(yǔ)言(IL)代碼,執(zhí)行時(shí)再通過Ju
5、st-In-Time將需要的模塊臨時(shí)編譯成本地代碼。內(nèi)存管理:C+需要顯式地刪除動(dòng)態(tài)分配給堆的內(nèi)存,而C#不需要這么做,C#采用垃圾回收機(jī)制自動(dòng)在合適的時(shí)機(jī)回收不再使用的內(nèi)存。指針:C+中大量地使用指針,而C#使用對(duì)類實(shí)例的引用,如果確實(shí)想在C#中使用指針,必須聲明該內(nèi)容是非安全的。字符串處理:在C#中,字符串是作為一種基本數(shù)據(jù)類型來對(duì)待的,因此比C+中對(duì)字符串的處理要簡(jiǎn)單得多。庫(kù):C+依賴于以繼承和模板為基礎(chǔ)的標(biāo)準(zhǔn)庫(kù),C#則依賴于.NET基庫(kù)。類繼承:C+允許類的多繼承,而C#只允許類的單繼承,通過接口才能實(shí)現(xiàn)多繼承。 C#和Java的比較C#與Java的相同之處。兩者都編譯成跨平臺(tái)的、跨語(yǔ)
6、言的代碼,并且代碼只能在一個(gè)受控制的環(huán)境中運(yùn)行。自動(dòng)收集垃圾內(nèi)存,并且取消了指針。在C#中可以使用指針,不過必須注明unsafe關(guān)鍵字。都不需要頭文件,所有的代碼都被“包(package)”限制在某個(gè)范圍內(nèi),并且因?yàn)闆]有頭文件,所以消除了類定義的循環(huán)依賴。C#與Java的區(qū)別C#面向?qū)ο蟮某潭缺菾ava高。C#具有比Java更強(qiáng)大的功能。C#的速度比Java快。Visual Studio 2008 集成開發(fā)環(huán)境Visual Studio 2013 集成開發(fā)環(huán)境Visual C# 的應(yīng)用程序類型控制臺(tái)應(yīng)用程序WinForm,Windows窗體應(yīng)用程序Windows服務(wù)應(yīng)用程序WebForm,We
7、b窗體應(yīng)用程序WPF應(yīng)用程序(Windows Presentation Foundation) 新一代圖形系統(tǒng),集成WebForm/WinFormWCF服務(wù)應(yīng)用程序(Windows Communication Foundation) 數(shù)據(jù)通信接口初識(shí)C#程序(控制臺(tái)應(yīng)用程序)新建項(xiàng)目控制臺(tái)應(yīng)用程序程序文件Program.cs:using System;/引用命名空間(注釋)using System.Text;/自定義命名空間namespace ConsoleApplication1 class Program/類 /Main方法(程序入口) static void Main(string ar
8、gs) Console.Write(Hello World); 初識(shí)C#程序(窗體應(yīng)用程序)C#項(xiàng)目的組織解決方案項(xiàng)目項(xiàng):文件(文件夾)命名空間與類的層次引用指令:using關(guān)鍵字Main方法Main可以放在任何類中,規(guī)范做法則是放在Program.cs中代碼注釋/單行注釋/*/塊注釋/XML注釋程序文件控制臺(tái)程序:Program.cs窗體程序:Program.cs、Form1.cs、Form1.Designer.cs任務(wù)1:熟悉Visual Studio開發(fā)環(huán)境安裝 Visual C# 2008 或者 Visual Studio 2008熟悉各種菜單、工具窗口新建并保存控制臺(tái)應(yīng)用程序工程(選
9、擇C#語(yǔ)言)在Main方法中,輸入語(yǔ)句:Console.Write(Hello World); 啟動(dòng)程序,查看運(yùn)行結(jié)果新建并保存窗體應(yīng)用程序工程(選擇C#語(yǔ)言)新建一個(gè)窗體,并設(shè)置窗體標(biāo)題、大小等相關(guān)信息在該窗體中插入一個(gè)標(biāo)簽控件,顯示“Hello World!”發(fā)布成應(yīng)用程序,安裝試用第二章 C#基本語(yǔ)法與編程2.1 標(biāo)識(shí)符與關(guān)鍵字關(guān)鍵字(保留字,系統(tǒng)標(biāo)識(shí)符):C#中有特殊含義的標(biāo)識(shí)符標(biāo)識(shí)符:唯一標(biāo)識(shí)代碼中的各種程序元素,一般指用戶標(biāo)識(shí)符標(biāo)識(shí)符的命名規(guī)則字符集遵循Unicode3.0標(biāo)準(zhǔn)只能使用字母、數(shù)字和個(gè)別特殊符號(hào)(大小寫敏感)必須以字母或者下劃線開頭以“”符號(hào)開始時(shí),允許使用關(guān)鍵字作為
10、標(biāo)識(shí)符標(biāo)識(shí)符必須“先定義后使用”2.2 數(shù)據(jù)類型值類型引用類型數(shù) 據(jù) 類 型描述取值范圍sbyte有符號(hào) 8 位整數(shù)128127byte無符號(hào) 8 位整數(shù)0255short有符號(hào) 16 位整數(shù)3276832767ushort無符號(hào) 16 位整數(shù)065535int有符號(hào) 32 位整數(shù)21474836482147483647uint無符號(hào) 32 位整數(shù)04294967295long有符號(hào) 64 位整數(shù)92233720368547758089223372036854775807ulong無符號(hào) 64 位整數(shù)0184467440737095516151.整數(shù)類形: C#定義了8種整數(shù)類型。它們?cè)趦?nèi)存中
11、占據(jù)的內(nèi)存大小各不相同,取值范圍也各不相同。值類型類型大致取值范圍描述精度f(wàn)loat1.510453.4103832位浮點(diǎn)數(shù)7位double5.0103241.71030864位浮點(diǎn)數(shù)1516位decimal1.010287.91028128位數(shù)據(jù)類型2829位有效位2.布爾類形:表示“真”或“假”的數(shù)據(jù)類型,取值為“true”或“false”,主要用于進(jìn)行邏輯判斷,類型標(biāo)識(shí)符為bool。3.實(shí)數(shù)(浮點(diǎn)數(shù))類型:?jiǎn)尉龋╢loat)、雙精度(double)、財(cái)務(wù)及貨幣(decimal)值類型轉(zhuǎn)義字符描 述轉(zhuǎn)義字符描 述轉(zhuǎn)義字符描 述n換行符f換頁(yè)符0空字符t水平制表符Tab反斜杠字符 v垂直制
12、表符Tabr回車符單引號(hào)a感嘆號(hào)b退格符雙引號(hào)4.字符類型:C#使用字符類型(char)來處理ASCII字符和Unicode字符Unicode是16位字符,可以表示世界上多數(shù)已知的書面語(yǔ)言C#中的字符常量使用單引號(hào)將字符括起來C#使用轉(zhuǎn)義字符來處理特殊字符,以“”開頭char類型可以隱式轉(zhuǎn)換為ushort、int、uint、long、ulong、float、double或decimal類型。值類型值類型5.枚舉類型用一種便于記憶的標(biāo)識(shí)符來表示有限個(gè)常數(shù)的集合 enum Days Mon, Tue, Wed, Thu, Fri, Sat, Sun;/Mon的值為0,其余的值依次遞增enum Da
13、ys Mon=1, Tue, Wed, Thu, Fri, Sat, Sun=0; /Mon后面的枚舉 元素的值依次遞增從enum類型到基本類型的轉(zhuǎn)換需要用顯式類型轉(zhuǎn)換來完成6.結(jié)構(gòu)類型:復(fù)合數(shù)據(jù)類型struct 結(jié)構(gòu)名成員聲明列表(訪問權(quán)限 數(shù)據(jù)類型 成員);;struct Student public int ID; /學(xué)號(hào) public string Name; /姓名 public float Score; /成績(jī);引用類型引用類型:不存儲(chǔ)實(shí)際數(shù)據(jù),存儲(chǔ)數(shù)據(jù)的引用(地址)包括類類型、字符串類型、數(shù)組類型、接口類型、委托類型數(shù)組數(shù)組定義后,在使用前必須初始化,也可以在定義的同時(shí)初始化數(shù)組
14、:數(shù)據(jù)類型 數(shù)組名;int num = new int31,2,5;多維數(shù)組:數(shù)據(jù)類型 , 多維數(shù)組名;int, num = new int2,3 1,2,3,4,5,6;交錯(cuò)數(shù)組(數(shù)組的數(shù)組/不規(guī)則數(shù)組):數(shù)據(jù)類型 數(shù)組名;int array = new int2 new int2 1,2 , new int33,4,5;常量與變量常量在程序運(yùn)行期間值保持不變的量,只能賦一次值習(xí)慣上將常量所使用的標(biāo)識(shí)符全部大寫const int NUM = 10;變量在程序運(yùn)行中可以改變的量int x,y;int a,b=3,c=20,d;數(shù)據(jù)類型的轉(zhuǎn)換C#是一種強(qiáng)類型語(yǔ)言,通常不允許一種類型替換另一種類型
15、隱式轉(zhuǎn)換:當(dāng)被轉(zhuǎn)換的類型的取值范圍完全包含在轉(zhuǎn)換到的類型的取值范圍之內(nèi)時(shí)才能執(zhí)行隱式轉(zhuǎn)換char c1=Y;int s1;s1 = c1;顯式轉(zhuǎn)換(強(qiáng)制類型轉(zhuǎn)換):明確要求編譯器將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型顯式類型轉(zhuǎn)換過程中可能導(dǎo)致數(shù)據(jù)精度損失或者引發(fā)異常short s1;int x1=13;s1 = (short)x1;s1 = Convert.ToInt16(x1); / .NET框架的類型轉(zhuǎn)換類裝箱與拆箱裝箱與拆箱機(jī)制:C#語(yǔ)言中引入了讓值類型在需要時(shí)轉(zhuǎn)化為引用類型,以及讓引用類型在需要時(shí)轉(zhuǎn)換為值類型的機(jī)制。裝箱是指將一個(gè)值類型隱式轉(zhuǎn)換為一個(gè)object類型的過程int x = 1
16、5;object obj = x; /利用隱式轉(zhuǎn)換實(shí)現(xiàn)裝箱object obj = (object) x; /利用顯式轉(zhuǎn)換實(shí)現(xiàn)裝箱拆箱是指將一個(gè)object類型顯式轉(zhuǎn)換成一個(gè)值類型的過程int val = 100; object obj = val; /裝箱int num = (int) obj; /拆箱2.3 常用運(yùn)算符類型運(yùn)算符描述算術(shù)運(yùn)算符+、*、/、%實(shí)現(xiàn)數(shù)學(xué)上的基本算術(shù)運(yùn)算功能邏輯運(yùn)算符 &、|、!與布爾類型操作數(shù)組成邏輯表達(dá)式位運(yùn)算符&、|、用于修改一個(gè)變量的二進(jìn)制格式數(shù)據(jù)中單獨(dú)的位字符串連接運(yùn)算符+實(shí)現(xiàn)字符串串聯(lián)增量和減量運(yùn)算符+、自增自減運(yùn)算,分為前綴和后綴運(yùn)算移位運(yùn)算符 根據(jù)
17、表達(dá)式規(guī)定的位數(shù)進(jìn)行左移或右移,并將結(jié)果賦給操作數(shù)變量比較運(yùn)算符 =、!=、=實(shí)現(xiàn)兩個(gè)操作數(shù)的比較操作賦值運(yùn)算符 =、+=、=、*=、/=、%=、&=、|=、=、=包括簡(jiǎn)單賦值和復(fù)合賦值運(yùn)算,且左操作數(shù)必須是一個(gè)變量成員訪問運(yùn)算符 .用于對(duì)象和結(jié)構(gòu)成員的訪問索引運(yùn)算符 用于數(shù)組和索引器數(shù)據(jù)類型轉(zhuǎn)換運(yùn)算符 ()用于實(shí)現(xiàn)顯式類型轉(zhuǎn)換條件運(yùn)算符 ?:三元運(yùn)算符對(duì)象創(chuàng)建運(yùn)算符new用于動(dòng)態(tài)創(chuàng)建對(duì)象和調(diào)用構(gòu)造函數(shù)類型信息運(yùn)算符 sizeof、is、typeof、assizeof只用于不安全的代碼溢出異常控制運(yùn)算符 checked、unchecked2.4 流程控制順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)跳轉(zhuǎn)語(yǔ)句選擇結(jié)構(gòu)
18、if-else語(yǔ)句if(表達(dá)式)elseswich語(yǔ)句swich(表達(dá)式)case 常量表達(dá)式1:語(yǔ)句;break;default:語(yǔ)句;break;循環(huán)結(jié)構(gòu)Whileint i=0,sum=0;while(i=100)i+;sum+=i;do-whileForint sum = 0; for (int i = 1; i = 100; i+)sum += i;Foreachchar A = 1,2,3,4,5; foreach (char t in A)Console.WriteLine(t);跳轉(zhuǎn)語(yǔ)句break語(yǔ)句:跳出swich結(jié)構(gòu),嵌套時(shí)只能跳出一層continue語(yǔ)句:跳出本次循環(huán)中尚
19、未執(zhí)行的語(yǔ)句return語(yǔ)句:退出類的方法,返回調(diào)用者,可返回值異常類型描述Exception 所有異常的基類SystemException 所有運(yùn)行時(shí)生成的錯(cuò)誤的基類IndexOutOfRangeException 僅當(dāng)錯(cuò)誤地對(duì)數(shù)組進(jìn)行索引時(shí),才由運(yùn)行庫(kù)引發(fā)NullReferenceException 僅當(dāng)引用空對(duì)象時(shí),才由運(yùn)行庫(kù)引發(fā)AccessViolationException 僅在訪問無效內(nèi)存時(shí)由運(yùn)行庫(kù)引發(fā)InvalidOperationException 當(dāng)處于無效狀態(tài)時(shí),由方法引發(fā)ArgumentException 所有參數(shù)異常的基類ArgumentNullException 由不
20、允許參數(shù)為空的方法引發(fā)ArgumentOutOfRangeException 由驗(yàn)證參數(shù)是否位于給定范圍內(nèi)的方法引發(fā)ExternalException 在運(yùn)行庫(kù)的外部環(huán)境中發(fā)生或針對(duì)這類環(huán)境的異常的基類COMException 封裝 COM HRESULT 信息的異常SEHException 封裝 Win32 結(jié)構(gòu)化異常處理信息的異常 C#中的異常處理提供了一種處理系統(tǒng)級(jí)錯(cuò)誤和應(yīng)用程序級(jí)錯(cuò)誤的結(jié)構(gòu)化的、統(tǒng)一的、類型安全的方法。程序運(yùn)行過程中所產(chǎn)生的異常一般可以分為兩種類型:用戶程序產(chǎn)生的異常和系統(tǒng)產(chǎn)生的異常。2.5 異常處理try-catch-finally語(yǔ)句tryConsole.Write
21、Line(try);catch(Exception e)Console.WriteLine(“catch);finallyConsole.WriteLine(finally);第三章 類和對(duì)象基本概念將客觀世界中的對(duì)象模型化,形成一種計(jì)算機(jī)化的表示,并以此為基礎(chǔ)來分析和解決問題便形成了面向?qū)ο蠹夹g(shù)。對(duì)象對(duì)象是對(duì)客觀事物的抽象對(duì)象由屬性和方法組成。屬性反映了對(duì)象的信息特征,而方法則定義改變屬性狀態(tài)的各種操作。類具有相同屬性和方法的對(duì)象可歸納成類,對(duì)象是類的一個(gè)實(shí)例,而對(duì)象的抽象是類。繼承類有一定的結(jié)構(gòu),可以派生出子類,子類除了繼承父類的屬性和方法外還可以有自己的屬性和方法。類是C#中最基礎(chǔ)的類型
22、。類是一個(gè)數(shù)據(jù)結(jié)構(gòu),將數(shù)據(jù)成員(狀態(tài))和功能成員(行為)組合在一個(gè)單元中,進(jìn)而體現(xiàn)了面向?qū)ο蠹夹g(shù)的封裝性。定義格式:Attribute 類修飾符 class 類名 :基類和實(shí)現(xiàn)的接口列表 類成員定義類的定義修飾符描述none、internal類只能在當(dāng)前項(xiàng)目中訪問public類可以在任何地方訪問abstract、internal abstract類只能在當(dāng)前項(xiàng)目中訪問,且不能實(shí)例化,只能繼承public abstract 類可以在任何地方訪問,且不能實(shí)例化,只能繼承sealed、internal sealed類只能在當(dāng)前項(xiàng)目中訪問,且只能實(shí)例化,不能繼承public sealed類可以在任何地
23、方訪問,且只能實(shí)例化,不能繼承類成員的可訪問性可訪問性描述public訪問不受限制,定義的成員可以在類的外部訪問protected訪問僅限于包含類或從包含類派生的類internal訪問僅限于當(dāng)前程序集(包)protected internal訪問僅限于從包含類派生的當(dāng)前程序集(包)或類private訪問僅限于包含類類的成員類的成員分為數(shù)據(jù)成員和功能成員數(shù)據(jù)成員包括:成員常量,代表與類相關(guān)的常數(shù)數(shù)據(jù);字段,類的變量。功能成員包括:方法,即類中的成員函數(shù);屬性,定義了命名的屬性以及讀寫屬性的相關(guān)的行為;索引,允許類的實(shí)例通過與數(shù)組相同的方法來索引;操作符,定義了可以用于類的實(shí)例上的表達(dá)式操作;事件
24、,定義了由類產(chǎn)生的事件公告;構(gòu)造函數(shù),對(duì)類的實(shí)例進(jìn)行初始化的操作;析構(gòu)函數(shù),在類的實(shí)例銷毀前執(zhí)行與資源釋放相關(guān)的操作。封裝 encapsulation 什么是封裝?封裝把對(duì)象的所有組成部分組合在一起,封裝定義程序如何引用對(duì)象的數(shù)據(jù)封裝實(shí)際上使用方法將類的數(shù)據(jù)隱藏起來,控制用戶對(duì)類的修改和訪問數(shù)據(jù)的程度。私有數(shù)據(jù)方法方法數(shù)據(jù)對(duì)象A對(duì)象B公有數(shù)據(jù)靜態(tài)成員和非靜態(tài)成員 類的成員可以是靜態(tài)成員,也可以是非靜態(tài)成員。靜態(tài)成員用關(guān)鍵字static修飾,它們屬于類。沒有用static修飾的類成員稱為非靜態(tài)成員,它們屬于對(duì)象。靜態(tài)成員的特征:一個(gè)靜態(tài)字段對(duì)應(yīng)一個(gè)存儲(chǔ)位置靜態(tài)成員屬于類,因此可以在包含類的實(shí)例之
25、間共享它們靜態(tài)成員一般通過類來訪問(非靜態(tài)成員通過包含類的實(shí)例來訪問)注意:區(qū)別理解“類”以及“類的實(shí)例(即對(duì)象)”構(gòu)造函數(shù)與析構(gòu)函數(shù)構(gòu)造函數(shù)的名稱與類名相同,沒有返回類型。類在實(shí)例化的時(shí)候,調(diào)用構(gòu)造函數(shù)析構(gòu)函數(shù)在類析構(gòu)時(shí)被調(diào)用(不能顯式調(diào)用)成員字段,即類的變量,類中的數(shù)據(jù)成員,用來存儲(chǔ)類所需的數(shù)據(jù)信息。class CalendarDate public readonly int month; /只讀字段,實(shí)例創(chuàng)建后不能對(duì)其賦值 public int day; public static int year=2005; /靜態(tài)字段,屬于類的成員屬性是對(duì)對(duì)象或類的字段進(jìn)行特定訪問的成員,是字段的
26、自然擴(kuò)展,訪問屬性和字段的語(yǔ)法相同。public string NameListTile /讀寫屬性 get return namelisttile; set namelisttile = value; 索引一種使對(duì)象能夠用與數(shù)組相同的方式進(jìn)行索引的成員。繼承與多態(tài)在C#中,派生類只能從一個(gè)基類中繼承修飾符 class 派生類名 :基類名派生類成員派生類能從它的直接基類中繼承的成員包括方法、字段、屬性、事件、索引(除了構(gòu)造函數(shù)和析構(gòu)函數(shù))在派生類中聲明與基類的同名成員,可以實(shí)現(xiàn)覆蓋C#的多態(tài)性基類的虛擬方法與派生類的重載方法(abstact)抽象類與抽象方法;(sealed)密封類與密封方法類
27、設(shè)計(jì)原則對(duì)真實(shí)世界系統(tǒng)建模將數(shù)據(jù)和行為封裝到對(duì)象中,類能夠?qū)φ鎸?shí)對(duì)象以及與其它對(duì)象之間如何交互進(jìn)行建模明確公共接口最小公共接口;隱藏實(shí)現(xiàn);設(shè)計(jì)健壯的構(gòu)造函數(shù)(和析構(gòu)函數(shù))應(yīng)當(dāng)將對(duì)象置于一種安全的初始狀態(tài)在類中設(shè)計(jì)錯(cuò)誤處理以合作為出發(fā)點(diǎn),“任何類都不可能是孤島”考慮重用和可擴(kuò)展性移出不可移植的代碼;讓作用域盡可能??;提供復(fù)制和比較對(duì)象的方法;類要對(duì)自己負(fù)責(zé)第四章 Windows編程及多文檔窗體Windows窗體應(yīng)用程序模型窗體Form類是在應(yīng)用程序中顯示的任何窗口的表示形式。當(dāng)為應(yīng)用程序設(shè)計(jì)用戶界面時(shí),首先創(chuàng)建一個(gè)從Form派生的類。然后添加控件、設(shè)置屬性、創(chuàng)建事件處理程序以及向窗體添加編程邏輯
28、??丶砑拥酱绑w中的每個(gè)組件稱為控件。事件Windows窗體編程模型基于事件。事件(Event)“事件”是當(dāng)對(duì)象發(fā)生某些事情時(shí),向其他對(duì)象提供通知的一種方法。在C#中是通過委托(delegate)實(shí)現(xiàn)的。事件有兩個(gè)角色:事件發(fā)送方,指觸發(fā)事件的對(duì)象事件接收方,指注冊(cè)想在某種事件發(fā)生時(shí)被通知的對(duì)象Windows窗體的常用屬性屬性說明Name設(shè)置控件的名稱AcceptButton設(shè)置當(dāng)用戶按Enter鍵時(shí)所單擊的窗體上的按鈕ActiveMdiChild獲取當(dāng)前活動(dòng)的多文檔界面(MDI)子窗體BackgroudImage設(shè)置在控件中顯示的背景圖像CancelButton設(shè)置當(dāng)用戶按Esc鍵時(shí)所單擊的
29、窗體上的按鈕ContextMenu設(shè)置與控件關(guān)聯(lián)的快捷菜單Cursor設(shè)置當(dāng)鼠標(biāo)指針位于控件上時(shí)顯示的光標(biāo)HelpButton設(shè)置是否在窗體的標(biāo)題欄中顯示“幫助”按鈕Icon設(shè)置窗體的顯示圖標(biāo)IsMdiChild設(shè)置窗體是否為多文檔界面(MDI)子窗體IsMdiContainer設(shè)置窗體是否為多文檔界面(MDI)子窗體的容器MaximizeBox設(shè)置是否在窗體的標(biāo)題欄中顯示最大化按鈕MinimumSize設(shè)置是否在窗體的標(biāo)題欄中顯示最小化按鈕Text設(shè)置窗體顯示的標(biāo)題Windows控件(Button)的常用事件名稱說明Click在單擊 Button 時(shí)發(fā)生。 GotFocus在此元素獲得邏輯焦
30、點(diǎn)時(shí)發(fā)生。 Initialized初始化此 FrameworkElement 時(shí)發(fā)生。 IsEnabledChanged在此元素的 IsEnabled 屬性值更改時(shí)發(fā)生。 IsVisibleChanged在此元素的 IsVisible 屬性值更改時(shí)發(fā)生。 KeyDown在焦點(diǎn)位于此元素上并且用戶按下鍵時(shí)發(fā)生。 KeyUp在焦點(diǎn)位于此元素上并且用戶釋放鍵時(shí)發(fā)生。 LostFocus在此元素丟失邏輯焦點(diǎn)時(shí)發(fā)生。 MouseDown在指針位于此元素上并且按下任意鼠標(biāo)按鈕時(shí)發(fā)生。 MouseEnter在鼠標(biāo)指針進(jìn)入此元素的邊界時(shí)發(fā)生。 MouseLeave在鼠標(biāo)指針離開此元素的邊界時(shí)發(fā)生。 Mouse
31、LeftButtonDown在鼠標(biāo)指針位于此元素上并且按下鼠標(biāo)左鍵時(shí)發(fā)生。 MouseRightButtonDown在鼠標(biāo)指針位于此元素上并且按下鼠標(biāo)右鍵時(shí)發(fā)生。 MouseUp在鼠標(biāo)指針位于此元素上并且松開任意鼠標(biāo)按鈕時(shí)發(fā)生。 MouseWheel在鼠標(biāo)指針位于此元素上并且用戶滾動(dòng)鼠標(biāo)滾輪時(shí)發(fā)生。 TextInput在此元素以設(shè)備無關(guān)模式獲取文本時(shí)發(fā)生。 TouchDown當(dāng)懸停在此元素上方的手指觸摸屏幕時(shí)發(fā)生。 TouchEnter在觸摸屏輸入從此元素邊界外部移動(dòng)到其內(nèi)部時(shí)發(fā)生。 TouchLeave在觸摸屏輸入從此元素邊界內(nèi)部移動(dòng)到其外部時(shí)發(fā)生。 常用控件標(biāo)簽控件(Label)為控件提供
32、運(yùn)行時(shí)信息或說明性文字,通常用于顯示靜態(tài)文本。 文本框控件(TextBox)用于接收用戶的輸入或者顯示文本。常用的事件是TextChanged事件,當(dāng)框中的內(nèi)容發(fā)生改變時(shí)觸發(fā)列表框控件(ListBox)用于顯示供用戶選擇的選項(xiàng)列表,用戶可以從中選擇一項(xiàng)或多項(xiàng)SelectedIndexChanged事件和SelectedValueChanged事件。組合框控件(ComboBox)結(jié)合了文本框控件和列表框控件的功能,同時(shí)具有這兩類控件的功能命令按鈕控件(Button)命令按鈕控件允許用戶通過單擊來響應(yīng)各種操作常用的事件是Click事件窗體切換與參數(shù)傳遞窗體的打開與關(guān)閉Form frm1=new Form();frm1.ShowDialog();/模態(tài)方式顯示,有返回值frm1.Show();/非模態(tài)方
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)教師辭職報(bào)告范文
- 專升本申辦報(bào)告范文
- 崗位總結(jié)報(bào)告范文
- 服裝銷售技巧及話術(shù)培訓(xùn)
- 攝影實(shí)踐報(bào)告范文
- 項(xiàng)目報(bào)告書范文
- 幸福之家分析報(bào)告范文
- 帕金森病影像表現(xiàn)
- 2025年杭州貨運(yùn)從業(yè)資格考試模擬考試題及答案詳解
- 建筑學(xué)科與專業(yè)發(fā)展
- 銀礦的開采與加工
- 小學(xué)綜合實(shí)踐課《我的零花錢》教學(xué)設(shè)計(jì)公開課教案
- 強(qiáng)酸強(qiáng)堿使用安全培訓(xùn)
- DB4201T569.1-2018武漢市反恐怖防范系統(tǒng)管理規(guī)范 第1部分:通則
- 新生兒聽力篩查工作管理制度
- 雨污水市政接駁施工方案
- 天津市2022-2023學(xué)年六年級(jí)上學(xué)期數(shù)學(xué)期末試卷(含答案)
- 人工智能技術(shù)導(dǎo)論-課件 第8章 人工智能倫理法規(guī)
- 黑龍江省哈爾濱市香坊區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)試題
- 女性私密的課件
- 動(dòng)車組轉(zhuǎn)向架檢修與維護(hù)-輪對(duì)的檢修
評(píng)論
0/150
提交評(píng)論