




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、.Net程序設(shè)計教材:Visual C# .NET實用教程,清華大學(xué)出版社課程學(xué)習(xí)的目的:1學(xué)習(xí)并掌握.NET技術(shù)、C#的編程方法和面向?qū)ο笏枷耄?.學(xué)習(xí)并掌握ADO.NET技術(shù)及Windows數(shù)據(jù)庫應(yīng)用程序的開發(fā);3.學(xué)習(xí)并掌握 ASP.NET技術(shù)及Web應(yīng)用程序的開發(fā);4.學(xué)習(xí)并掌握網(wǎng)絡(luò)編程的知識前期課程基礎(chǔ):數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、計算機網(wǎng)絡(luò)第1講 .NET綜述1.1 .NET介紹1.2 .NET核心成分簡介1.2.1公共語言運行庫1.2.2 .NET Framework類庫1.2.3 中間語言和程序集1.2.4 公共語言規(guī)范1.2.5 通用類型系統(tǒng)1.3 開發(fā)工具及C#語言1.3.1 開發(fā)
2、工具介紹1.3.2 C#語言簡介1.4 基于.NET的應(yīng)用程序1.4.1 SDK和IDE1.4.2 基于.NET的應(yīng)用程序1.5 C#程序設(shè)計初步1.5.1 在SDK上開發(fā)控制臺程序1.5.2 在IDE上開發(fā)Windows應(yīng)用程序1.5.3 在IDE上開發(fā) Web應(yīng)用程序第2講C#類型和語句成分2.1關(guān)鍵字、標(biāo)識符和注釋2.1.1 關(guān)鍵字2.1.2 標(biāo)識符及其命名2.1.3 注釋2.2 C#類型基礎(chǔ)2.2.1 類型分類2.2.2 C#語言的類型系統(tǒng)2.2.3 變量2.2.4常量和文字2.3 值類型2.3.1簡單類型2.3.2枚舉類型2.4 數(shù)組類型2.4.1 一維數(shù)組2.4.2多維數(shù)組2.4.
3、3 交錯數(shù)組2.4.4 Array類簡介2.4.5 foreach語句2.5 字符串常量2.5.1 創(chuàng)建字符串2.5.2 String字符串的比較2.6 結(jié)構(gòu)2.6.1 結(jié)構(gòu)的聲明2.6.2 結(jié)構(gòu)的實例化及應(yīng)用2.7運算符和表達(dá)式2.7.1 算術(shù)運算符2.7.2 關(guān)系運算符2.7.3 邏輯運算符2.7.4 位運算符2.7.5 賦值運算符2.7.6 條件運算符2.7.7 運行符的優(yōu)先級及結(jié)合性2.8 數(shù)據(jù)類型轉(zhuǎn)換2.8.1隱式類型轉(zhuǎn)換2.8.2 顯示轉(zhuǎn)換第3講 C#語句3.1 簡單語句3.1.1 表達(dá)式語句3.1.2 空語句3.1.3復(fù)合語句3.1.4 聲明語句3.2 選擇語句3.2.1 條件運
4、算符3.2.2 if語句3.2.3 switch語句3.3 循環(huán)語句3.3.1 while循環(huán)3.3.2 do_while循環(huán)3.3.3 for循環(huán)3.4 跳轉(zhuǎn)語句3.4.1 break語句3.4.2 continue語句3.4.3 goto 語句3.4.4 return 語句3.5 命名空間3.5.1命名空間聲明3.5.2 using 命名空間指令3.5.3 using別名指令第4講 面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)-類、對象、方法4.1 面向?qū)ο蟪绦蛟O(shè)計概述4.2 類和對象4.2.1 類的聲明4.2.2 類的成員4.2.3 對象的聲明4.3 構(gòu)造函數(shù)4.3.1 默認(rèn)構(gòu)造函數(shù)4.3.2 構(gòu)造函數(shù)的重載4
5、.4 析構(gòu)函數(shù)4.5 方法4.5.1 方法的聲明及調(diào)用4.5.2 方法中的參數(shù)傳遞4.5.3 實例方法和靜態(tài)方法4.5.4 方法重載4.6運算符重載4.7屬性和索引器4.7.1 屬性的聲明和使用4.7.2 索引器的聲明和使用4.7.3 屬性和索引器的比較第5講 面向?qū)ο蟪绦蛟O(shè)計-繼承、多態(tài)5.1 類的繼承5.1.1 基類與派生類5.1.2 成員的繼承、添加和隱藏5.1.3 base關(guān)鍵字5.2 抽象類與封閉類5.2.1 抽象方法、屬性、索引器5.2.2 抽象類5.2.3 密封類5.3 多態(tài)5.3.1 虛成員5.3.2 重寫5.3.3 編譯時多態(tài)和運行時多態(tài)第6講 面向?qū)ο蟪绦蛟O(shè)計-接口、委托1
6、 接口.1 接口的定義.2 接口的實現(xiàn)2委托和事件1 委托2 事件3 異常處理1 異常類2 異常處理步驟3 拋出異常4 捕獲處理異常第7講 Windows應(yīng)用程序7.1 Windows應(yīng)用程序開發(fā)步驟7.1.1創(chuàng)建窗體7.1.2 添加控件及控件布局7.1.3 響應(yīng)事件7.2 Windows常用控件7.2.1 文本類控件7.2.2 按鈕類控件7.2.3 對話框類控件7.2.4 列表框、視圖類控件7.2.5 滾動類控件7.2.6 工具欄和狀態(tài)欄控件7.2.7 定時器控件7.2.8 菜單控件7.3多文檔界面(MDI)7.3.1 創(chuàng)建MDI父窗體7.3.2 創(chuàng)建MDI子窗體7.3.3 確定活動的MDI
7、子窗體7.3.4 排列子窗體7.4 實例解析第7講 ADO.NET數(shù)據(jù)庫訪問技術(shù)8.1 ADO.NET概述8.2 ADO.NET體系結(jié)構(gòu)8.2.1 ADO.NET的總體結(jié)構(gòu)8.2.2 DataSet結(jié)構(gòu)8.2.3 .NET Framwork數(shù)據(jù)提供程序8.2.4 ADO.NET開發(fā)數(shù)據(jù)庫應(yīng)用程序的一般步驟8.3數(shù)據(jù)庫的連接8.3.1 Connection連接字符串8.3.2 創(chuàng)建并使用連接對象8.4 Command對象的使用8.4.1 創(chuàng)建Command對象8.4.2 執(zhí)行命令8.4.3 參數(shù)化查詢8.4.4 執(zhí)行存儲過程8.5 DataReader對象的使用8.5.1 創(chuàng)建DataReade
8、r對象8.5.2 使用DataReader讀取數(shù)據(jù)8.6 DataSet和DataAdapter的使用8.6.1 DataSet對象管理數(shù)據(jù)8.6.2 使用DataAdapter對象第9講 Windows數(shù)據(jù)庫應(yīng)用程序開發(fā)9.1數(shù)據(jù)綁定9.1.1 簡單數(shù)據(jù)綁定9.1.2 復(fù)雜數(shù)據(jù)綁定9.2數(shù)據(jù)源的類型9.2.1 數(shù)組數(shù)據(jù)源9.2.2 數(shù)據(jù)表數(shù)據(jù)源9.2.3 數(shù)據(jù)集數(shù)據(jù)源9.3 Windows數(shù)據(jù)庫應(yīng)用實例9.3.1數(shù)據(jù)庫的創(chuàng)建及連接9.3.2主要界面及相關(guān)代碼第10講 ASP.NET 技術(shù)10.1 ASP.NET簡介10.1.1 ASP.NET的特點10.1.2 ASP.NET代碼分離技術(shù)10
9、.1.3 Web窗體10.2 ASP.NET 控件10.2.1 HTML服務(wù)器控件10.2.2 Web服務(wù)器控件10.2.3驗證控件10.3 ASP.NET內(nèi)置對象10.3.1 Response對象10.3.2 Request 對象10.3.3 Server對象10.3.4 Session對象10.3.5 Application對象第11講 Web應(yīng)用程序開發(fā)基礎(chǔ)11.1 Web數(shù)據(jù)綁定技術(shù)11.2 列表類數(shù)據(jù)綁定控件11.2.1 列表控件概述11.2.2 列表類控件數(shù)據(jù)綁定舉例11.3 GridView控件11.3.1 GridView控件概述11.3.2 常用屬性、方法和事件11.3.3
10、GridView中的字段類型11.3.4 GridView數(shù)據(jù)顯示11.3.5編輯和刪除數(shù)據(jù)11.3.6 分頁顯示數(shù)據(jù)和數(shù)據(jù)排序11.4 Global.asax文件11.5 Web.config文件11.5.1 配置與調(diào)用數(shù)據(jù)庫鏈接字符串11.5.2 配置文件Web.config第12講 網(wǎng)上選課系統(tǒng)的開發(fā)12.1需求分析12.2數(shù)據(jù)庫設(shè)計12.2.1 數(shù)據(jù)庫表12.2.2 存儲過程12.3系統(tǒng)設(shè)計12.4數(shù)據(jù)庫連接12.4.1 Web.Config的配置12.4.2 調(diào)用連接字符串12.5 系統(tǒng)實現(xiàn)12.5.1 登錄界面(Login/Login.aspx) 12.5.2 選課界面(stude
11、nt/selectcourse.aspx) 12.5.3 提交界面(student/tijiao.aspx) 12.5.4 學(xué)生管理界面(manager/StudentList) 12.5.5 選課管理界面(manager/XuanKeList.aspx) 以上為考試范圍第13講 多線程和同步13.1 基本概念13.1.1多線程概念13.1.2 C#中線程實現(xiàn)方法13.2 Thread類13.2.1 Thread類介紹13.2.2 線程的狀態(tài)和生命周期13.2.3 線程的優(yōu)先級13.3多線程編程13.3.1 編程步驟13.3.2 編程實例13.4線程同步和互斥13.4.1多個線程同時修改共享數(shù)
12、據(jù)可能發(fā)生的錯誤13.4.2 用Lock語句實現(xiàn)互斥13.4.3 用Mutex類實現(xiàn)互斥13.4.4 用Monitor類實現(xiàn)互斥13.5 實例解析第14講 網(wǎng)絡(luò)協(xié)議與套接字編程14.1 TCP/IP網(wǎng)絡(luò)協(xié)議14.1.1 TCP/IP參考模型14.1.2網(wǎng)間協(xié)議IP14.1.3 傳輸控制協(xié)議TCP14.1.4 C#中相關(guān)的類14.2套接字編程技術(shù)14.2.1 IP地址和端口14.2.2 套接字14.2.3 面向連接的套接字14.2.4無連接的套接字14.3 套接字編程實例1、.Net包括哪些內(nèi)容?主要介紹.NET的兩個重要實體:公共語言運行庫(Common Language Runtime,CL
13、R)和.NET Framework類庫(Framework Class Library,F(xiàn)CL),以及其它核心成分。2、什么是.Net Framework?.NET平臺又稱.NET框架(.NET Framework),是.NET的核心組成部分,提供了一個多語言組件開發(fā)和執(zhí)行的環(huán)境一個完全可操控的安全的和特性豐富的應(yīng)用開發(fā)執(zhí)行環(huán)境,這不但使得應(yīng)用程序的開發(fā)和發(fā)布更加簡單,并且實現(xiàn)了眾多種類語言間的無縫集成。3、公共語言運行庫公共語言運行庫(Common Language Runtime,CLR)又稱為公共語言運行時或公共語言運行環(huán)境,是.NET系統(tǒng)構(gòu)架中核心的部分,負(fù)責(zé)執(zhí)行代碼、管理內(nèi)存、提供安
14、全性等核心功能。它是構(gòu)成.NET框架的兩個實體中的一個。CLR和Java虛擬機一樣是一個運行時環(huán)境,其主要功能包括:l 執(zhí)行和管理:完成運行過程中的代碼加載、應(yīng)用程序和托管對象的內(nèi)存管理、對象自動布局、使用JIT(Just In Time)編譯器將MSIL(Microsoft intermediate language)編譯成本地代碼并且控制代碼執(zhí)行、處理異常等全部步驟。l 提供安全保證:類型安全、代碼訪問安全、控制托管和非托管代碼的互操作。l 對開發(fā)者的支持:提供界面信息,幫助調(diào)試等。4、代碼執(zhí)行過程在.NET中,將代碼分為托管代碼(managed code)和非托管代碼(unmanaged
15、 code )兩種C#.NET源程序VB.NET源程序CLS:公共語言運行規(guī)范VB.NET編譯器C#編譯器MSIL:Microsoft中間語言CLR:公共語言運行庫(JIT:just in time 編譯器)本地代碼代碼執(zhí)行流程5、開發(fā).NET的應(yīng)用程序使用兩種環(huán)境SDK和IDE,二者區(qū)別與聯(lián)系SDK和IDE分別是Microsoft的software development kit(軟件開發(fā)工具包)和integrated development environment(集成開發(fā)環(huán)境)的縮寫。采用SDK開發(fā),首先使用文本編輯器編寫代碼,然后用命令行編譯和執(zhí)行。開發(fā)控制臺程序通常使用SDK環(huán)境。I
16、DE是可視化的開發(fā)環(huán)境,所謂可視化編程,是一種自動或半自動的編程方法。在編程過程中,程序員利用系統(tǒng)提供的圖形元素,組合成所需要的界面或組合成能夠體現(xiàn)程序邏輯的流程,系統(tǒng)就能自動地產(chǎn)生部分代碼或全部代碼。在IDE中,程序員可以利用系統(tǒng)中提供的圖形元素組合成界面,開發(fā)Windows窗體應(yīng)用程序和Web應(yīng)用程序。6、IDE上直接支持的應(yīng)用程序的主要類型有哪些?1、Windows應(yīng)用程序Windows應(yīng)用程序是基于Windows 窗體(Windows Forms)的應(yīng)用程序,是一種基于圖形界面接口GUI的應(yīng)用程序,一般是在用戶計算機本地運行。2、Windows控件庫可以創(chuàng)建Windows窗體應(yīng)用程序的
17、自定義控件,以方便用戶的使用。3、ASP.NET Web應(yīng)用程序ASP.NET是.NET中統(tǒng)一的Web開發(fā)平臺,可以用來開發(fā)企業(yè)級的Web應(yīng)用程序。ASP.NET使程序員能夠像設(shè)計Windows窗體應(yīng)用程序一樣設(shè)計Web應(yīng)用程序,并且采用代碼分離技術(shù),使代碼與HTML文檔分離,方便代碼重用,還具有服務(wù)器控件的開發(fā)能力,能夠在IDE中進行可視化的開發(fā)。4、ASP.NET Web ServiceWeb Service是Microsoft的.NET戰(zhàn)略中的重點,由于XML(extensible markup language)是當(dāng)今Internet和各類系統(tǒng)之間數(shù)據(jù)交換的標(biāo)準(zhǔn),所以也稱為XML We
18、b Services,它可以實現(xiàn)客戶端服務(wù)器或服務(wù)器客戶端之間的數(shù)據(jù)交換。XML Web Services 采用松耦合的分布式結(jié)構(gòu),不與特定的組件技術(shù)或?qū)ο笳{(diào)用約定相關(guān)聯(lián),也與編程語言、組件模型、操作系統(tǒng)等無關(guān)。一般的Web程序,如瀏覽器,是人與程序的對話,而Web Service是程序與程序的對話。Web Service是公認(rèn)的Internet下一個最大的浪潮,也是Internet應(yīng)用中最有影響的服務(wù)。5、智能設(shè)備應(yīng)用程序Internet不僅可以連接PC機、服務(wù)器等計算機設(shè)備,也可以連入電視機、電冰箱、打印機等家用的或辦公的電器,可以通過Internet進行遠(yuǎn)程控制,智能設(shè)備應(yīng)用程序就是連接
19、、控制這些設(shè)備,并互相通信的應(yīng)用程序。6、ASP.NET移動Web應(yīng)用程序此類應(yīng)用程序應(yīng)用于能無線上網(wǎng)的移動數(shù)字設(shè)備,常見的移動設(shè)備有移動電話、PDA、筆記本電腦等。.NET提供移動控件來連接移動設(shè)備的設(shè)備適配器,在.NET上開發(fā)移動Web應(yīng)用程序的過程和開發(fā)其它Web應(yīng)用程序類似。7、C#語言支持的兩種基本數(shù)據(jù)類型值類型和引用類型。理解這兩種類型的區(qū)別是理解C#語言各種類型及其用法的基礎(chǔ)。l 值類型:值類型變量存放在棧里,所以直接包含有它們的數(shù)據(jù),每個值類型變量都有它自己的副本,因此對一個變量的操作不會影響到另一個變量。l 引用類型:引用類型的存儲分為兩部分,引用類型中對數(shù)據(jù)的引用存放在棧里
20、面,而引用類型的數(shù)據(jù)存放在堆里面。所以引用類型變量的名不包含它的數(shù)據(jù),而是只包含對它的數(shù)據(jù)的引用。引用類型變量的數(shù)據(jù)存儲在一個實例中,不同的變量可以引用同一個對象的實例,因此在對一個引用變量操作時,改變實例值時將會影響其他引用這個實例的引用變量,在編程中要格外注意。8、C#語言提供了兩種實現(xiàn)繼承的方式:類的繼承和接口繼承。他們的區(qū)別與聯(lián)系.通常把作為基礎(chǔ)、被繼承的類稱為基類,繼承別的類的子類稱為派生類。一個類從另一個類派生出來時,派生類從基類那里繼承特性。派生類也可以作為其它類的基類。C#中,派生類只能從一個類中繼承,不支持多繼承的機制。如果必須使用多重繼承,可以使用接口繼承來實現(xiàn)。9C#的關(guān)
21、鍵字abstractasbaseboolbreakbytecasecatchcharcheckedclassconstcontinuedecimaldefaultdelegatedodoubleelseenumeventexplicitexternfalsefinallyfixedfloatforforeachgotoifimplicitinintinterfaceinternalislocklongnamespacenewnullobjectoperatoroutoverrideparamsprivateprotectedpublicreadonlyrefreturnsbytesealeds
22、hortsizeofstackallocstaticstringstructswitchthisthrowtruetrytypeofuintulonguncheckedunsafeushortusingvirtualvolatilevoidwhilenew只允許用在嵌套類中,表明隱藏了從基類繼承而來、與基類中同名的成員abstract說明該類是一個抽象類,該類含有抽象成員,因此不能被實例化,只能用來做其他類的基類,而不能產(chǎn)生對象sealed說明該類是一個密封類,不能做其他類的基類,不能再派生新的類public表示外界可以不受限制的訪問該類。類的訪問權(quán)限省略時默認(rèn)為publicprotected
23、該類只能被這個類的成員或類派生成員訪問internal表示該類能由程序集中的所有文件使用,而不能由程序集之外的對象使用private表示該類只能被這個類的成員訪問10、 C#的基本數(shù)據(jù)類型枚舉類型用戶自定義類型簡單類型指針類型用戶自定義類型接口數(shù)組類類型指針類型接口用戶自定義類型值類型引用類型類型委托字符串圖2.1 C#的類型系統(tǒng)值類型包括三種:簡單類型、枚舉類型和自定義類型(這里指結(jié)構(gòu))。將在2.3小節(jié)介紹前兩種值類型,在第5章介紹結(jié)構(gòu)類型。引用類型包括類(class)、接口(interface)、委托(delegate)、數(shù)組(array)、字符串(String)和Object以及不提倡使
24、用的指針類型。習(xí)慣將引用類型的變量稱為對象,而值類型的變量仍然稱為變量。引用類型和值類型的最大區(qū)別是引用類型的數(shù)據(jù)存儲在堆中,而在棧中存儲它的數(shù)據(jù)的引用。 位運算符“<<”是二元運算符,稱為左移運算符,它的第一操作數(shù)是int、uint、long或ulong中的一種;第二操作數(shù)是int量,表示第一操作數(shù)需要向左移位的次數(shù)。左移的結(jié)果是第一操作數(shù)的最高位移出,而最低位由0填充。例如: int c = 48;/c十六進制值是 int s = c << 2;Console.WriteLine("OX0:x",s);/運算結(jié)果是:OXc0位運算符“>&g
25、t;”和“<<”相對應(yīng),也是二元運算符,稱為右移運算符。它的第一操作數(shù)是int、uint、long或ulong中的一種;第二操作數(shù)是int量,表示第一操作數(shù)需要向右移位的次數(shù)。右移的結(jié)果是第一操作數(shù)的最低位移出,而最高位按第一操作數(shù)的類型分別處理,如果第一操作數(shù)是有符號的數(shù)據(jù)類型(int或long),那么右移操作就是算術(shù)右移。算術(shù)右移的特點是:最低位移出,其他各位從低到高依次右移,最高位(符號位)不變,同時復(fù)制到次高位。如果第一操作數(shù)是無符號數(shù)(uint或ulong),那么右移操作是邏輯移位,也就是最低位移出,其他各位從低到高依次右移,最高位由0填充。例如: int i = -25
26、6; uint j=256; Console.WriteLine("有符號數(shù)右移1位:0",i>>1);Console.WriteLine("無符號數(shù)右移1位:0", j >> 1);輸出結(jié)果是:有符號數(shù)右移1位:-128無符號數(shù)右移1位:128知 識 點 匯 總1、 什么是面向?qū)ο蟪绦蛟O(shè)計?2、 什么是類?類的多態(tài) 、封裝、繼承作用是什么?類的成員由兩部分組成,一部分是類體中以類成員聲明形式引入的類成員,另一部分是直接從它的基類繼承而來的成員。類的成員主要包括數(shù)據(jù)成員和方法成員,類是完成對它們封裝的結(jié)構(gòu)類型。類的數(shù)據(jù)成員可以是常
27、量、字段和對象等。方法成員包含方法、屬性、索引器、事件、操作符、構(gòu)造函數(shù)、析構(gòu)函數(shù)等。當(dāng)字段、方法、屬性、事件、運算符和構(gòu)造函數(shù)聲明中含有static修飾符時,則表明它們是靜態(tài)成員,否則就是實例成員。靜態(tài)成員屬于類,而實例成員屬于對象。類成員聲明時,可以使用以下5種訪問修飾符中的一種:public、protected、internal、private、protected internal。當(dāng)類成員聲明中不包含訪問修飾符時,默認(rèn)訪問修飾符為private。多態(tài)就是指一個成員在不同的上下文中表現(xiàn)出不同的功能。多態(tài)是面向?qū)ο蟪绦蛟O(shè)計中重要概念和常見技術(shù),也是一種代碼重用技術(shù)。虛成員和虛成員的重寫是多
28、態(tài)技術(shù)的基礎(chǔ)。根據(jù)C#是在編譯時還是在運行時確定得調(diào)用不同類對象的哪個同名成員,將多態(tài)分為如下兩種:編譯時多態(tài)和運行時多態(tài)。編譯時多態(tài)是指在編譯時就能確定調(diào)用什么對象中的成員,也稱為早綁定。隱藏、重載都屬于早期綁定,即編譯時多態(tài)。運行時多態(tài)是指只有當(dāng)運行時才能確定調(diào)用哪個對象中的成員,又稱為晚綁定。虛方法、重寫是晚綁定,即運行時多態(tài)。一般所說的多態(tài)性均為運行時多態(tài)。3、 構(gòu)造方法(構(gòu)造函數(shù))構(gòu)造函數(shù)的重載是常見的現(xiàn)象,同一個類中有多個構(gòu)造函數(shù),區(qū)別他們的依據(jù)是參數(shù)列表,同一個類中任意兩個構(gòu)造函數(shù)的參數(shù)列表必須不同,參數(shù)列表只要具備下列條件之一,就可以認(rèn)為是不同的參數(shù)列表,進而可以認(rèn)為是兩個重載
29、的構(gòu)造函數(shù):1)參數(shù)列表中參數(shù)個數(shù)不同;2)參數(shù)列表中參數(shù)個數(shù)相同,但參數(shù)類型不同;3)參數(shù)列表中參數(shù)個數(shù)相同,參數(shù)類型種類也相同,但排列的次序不同。4、 屬性屬性由兩部分組成:屬性頭和存取器。存取器分為get訪問器和set訪問器。下面給出屬性的聲明。 語法形式: 修飾符 類型說明符 屬性名 訪問聲明 其中:l 修飾符new, public, protected, internal, private, static, virtual, override和abstract 9種。l 訪問聲明用來聲明屬性訪問器。給屬性賦值時使用set訪問器, 獲取屬性值時使用get訪問器。在訪問聲明中,如果只有g(shù)
30、et訪問器,表示是只讀屬性;如果只有set訪問器,表示只寫屬性;兩個都有,表示讀寫屬性。set訪問器是一個帶有簡單值類型參數(shù)的方法,用于處理類外部的寫入值。set訪問器帶有一個特殊的關(guān)鍵字value,value就是set訪問器的隱式參數(shù),在set中通過value將外部的輸入傳遞進來,然后賦值給類中的某個變量成員。get訪問器是一個不帶參數(shù)的方法,它用于向外部返回屬性成員的值。通常訪問函數(shù)的語句或語句塊主要由return或throw語句返回某個變量成員的值。為了實現(xiàn)良好的數(shù)據(jù)封裝和數(shù)據(jù)隱藏,類的字段成員的訪問屬性一般設(shè)置為private或protected,這樣在類的外部就不能直接讀/寫這些字段
31、了,通常的辦法是提供public級的方法來訪問私有的或保護的字段。為了實現(xiàn)對數(shù)據(jù)成員更好地封裝和保護,同時又向外界提供更有效的訪問形式,C#采用屬性來實現(xiàn)這種目標(biāo)。屬性是一種特殊的成分,它具有方法的本質(zhì),又具有字段的形式,即屬性的定義類似于方法的定義,屬性的使用類似于字段的使用。屬性完善了C#的封裝功能,使得所有的數(shù)據(jù)成員都可以成為私有成員,從而更好地體現(xiàn)了面向?qū)ο蟪绦蛟O(shè)計的封裝性。5、 索引器索引器允許按照與數(shù)組相同的方式對類、結(jié)構(gòu)或接口進行索引。索引器類似于屬性,不同之處在于它們的訪問器采用參數(shù)。下面給出索引器的聲明。 語法形式: 修飾符 索引器聲明符 訪問器聲明 其中:l 修飾符可以是n
32、ew、 virtual、sealed、override、abstract、extern以及public、protected、internal、private四個訪問修飾符的有效組合。注意,索引器修飾符不可以是static的。l 索引器聲明符的形式有兩種,分別是:類型 this 形參表或類型 接口類型 this 形參表 注意此處“”不表示可選,是索引器聲明符的必要部分。而this是C#中的關(guān)鍵字,除了可以聲明索引器以外,還用于限定被相似的名稱隱藏的成員、將對象作為參數(shù)傳遞到其它方法。l 訪問器聲明,也要使用get()和set()訪問器,不同的是使用索引指示器取得的對象是對象中各元素的值,而不是特
33、定的數(shù)據(jù)成員。使用索引器的形式為:對象名實參使用索引器也是C#的一個特色,一個類往往包含了數(shù)組型的對象,索引器使得可以像數(shù)組那樣對對象使用下標(biāo),為我們提供了通過索引方式方便地訪問類的數(shù)據(jù)信息的方法。 6、 抽象類特點是什么?舉例說明 用關(guān)鍵字abstract修飾的抽象類是一種沒有被完整定義的類,因此它不能用來實例化,也就是說,不能產(chǎn)生對象。設(shè)計abstract類的目的是為了被繼承,其意義在于:1)、包含派生類的公有成員。這些公有成員在抽象類中定義一次,就可以被反復(fù)使用,提高軟件開發(fā)的效率和可維護性。2)、規(guī)范行為。抽象方法等具體行為特征的成員實際上是一種建模過程,規(guī)定了輸入口和輸出口,而將實現(xiàn)
34、的細(xì)節(jié)留給派生類根據(jù)實際情況編程。同一個抽象類的派生類有許多共性,這使得它們有了交互的基礎(chǔ)。下面給出抽象類的聲明。 語法形式: abstract class 類名 抽象類不能產(chǎn)生實例,因此不能這樣書寫代碼,如:抽象類名 對象名 = new 抽象類名(參數(shù)列表)new 抽象類名(參數(shù)列表)。這樣的代碼都是錯誤的。 設(shè)計抽象類時要注意以下幾點:1)、抽象類雖然不能產(chǎn)生對象,但可以有構(gòu)造函數(shù)。2)、抽象類是要被繼承的,所以不能和sealed修飾符聯(lián)用。3)、抽象類的派生類可以依然是抽象類,只有當(dāng)派生類實現(xiàn)了所有抽象成員后,才演化為一個普通的類,這時才能產(chǎn)生對象。7、 抽象方法 用abstract修飾
35、的方法、屬性和索引器分別稱為抽象方法、抽象屬性、和抽象索引器。它們共同特點是只有行為的定義,卻沒有行為的實現(xiàn)。抽象方法是只有方法頭,沒有方法體的方法。抽象方法的聲明格式如下。語法形式:abstract 返回類型 方法名(參數(shù)列表); 抽象方法規(guī)定了方法的輸入?yún)?shù)的類型和數(shù)量以及輸出的類型,以此定義了方法的激勵和響應(yīng)的形式,而在內(nèi)容上可由實現(xiàn)者任意實現(xiàn),因此僅憑抽象方法的定義來判斷方法的功能是不可靠的。抽象屬性中可以選擇get和set關(guān)鍵字,但沒有具體的執(zhí)行語句,抽象屬性的聲明格式如下。語法形式:abstract 返回類型 屬性名get; set;而抽象索引器的聲明形式和抽象屬性的很相似。 語法
36、形式: abstract 返回類型 this參數(shù)列表 get; set; 在用到abstract關(guān)鍵字時,需要注意以下幾點:1)、abstract不能和static同時修飾同一個方法。2)、abstract也不能和private同時修飾同一個方法,并且不能省略訪問控制符。3)、abstract方法只能出現(xiàn)在abstract類中,并且只有當(dāng)包含此抽象方法的抽象類被繼承之后,才能在派生類中被實現(xiàn)。4)、派生類實現(xiàn)抽象方法時必須使用關(guān)鍵字override,否則被默認(rèn)為是缺省的關(guān)鍵字new。8、 接口接口是抽象成員的集合,這些抽象成員可以是抽象方法、屬性、索引器、事件,接口是實現(xiàn)多繼承的工具。 實際上
37、,接口是一些實現(xiàn)特定功能的抽象成員的集合。一個類可以繼承多個接口,從而獲得多個行為的描述,將它們組合成新的功能并在類中實現(xiàn)。 接口的聲明。語法形式: 接口修飾符 interface 接口名:基接口列表 接口體 其中:l 接口修飾符有new、public、protected、internal、private。l Interface聲明接口時的關(guān)鍵字。l 接口名一個標(biāo)識符,首字母為大寫的I。l “:”表示繼承,接口可以多繼承?;涌诹斜硎且粋€或多個基接口類型,正在被定義的接口將繼承基接口列表中的所有基接口,出現(xiàn)在基接口列表中的基接口也可能繼承了其他的接口,為了方便區(qū)分,把出現(xiàn)在基接口列表中的基接口
38、稱為顯式基接口?;涌谥g用“,”分割。接口繼承其所有基接口的所有成員,也可以用new隱藏基接口的成員using System;public interface Igram /聲明圖形接口 double Area(); double GramLength(); int Sidesget;public interface IDisplay/聲明輸出接口 void Print();public class Square:Igram,IDisplay private int sides; public int SideLength; public Square()/構(gòu)造函數(shù) sides=4; pub
39、lic int Sides/實現(xiàn)Igram接口的Sides屬性成員 get return sides; public double Area()/實現(xiàn)Igram接口的Area方法成員 return(double)(SideLength*SideLength); public double GramLength() /實現(xiàn)Igram接口的GramLength方法成員 return (double)(Sides * SideLength); public void Print()/實現(xiàn)IDisplay接口的Print方法成員 Console.WriteLine("n計算正方形面積結(jié)果如下
40、:"); Console.WriteLine("邊長:0", this.SideLength); Console.WriteLine("周長:0", this.GramLength(); Console.WriteLine("面積:0", this.Area(); public class App public static void Main() Square sq = new Square(); sq.SideLength = 5; sq.Print(); 運行結(jié)果: 在同一個類Square中實現(xiàn)了兩個接口:Igram和
41、IDisplay。9、 參數(shù)傳遞C#中傳入到方法中的參數(shù)不同,可分為4種:傳遞值類型的參數(shù)、傳遞引用類型的參數(shù)、傳遞多個引用類型參數(shù)和傳遞個數(shù)不確定的參數(shù)。傳遞多個引用類型參數(shù)return語句一次只能返回一個結(jié)果,針對這種情況,C#提供了一種特殊的參數(shù)傳遞方式:傳遞多個引用類型參數(shù)。完成這種數(shù)據(jù)傳遞方式所使用的是輸出型參數(shù),用關(guān)鍵字out表示。與引用型參數(shù)類似,輸出型參數(shù)也不開辟新的內(nèi)存區(qū)域。它與引用型參數(shù)的區(qū)別:調(diào)用方法前無需對變量進行初始化,正因為如此,在out參數(shù)沒有被顯示地賦值之前,不能使用。在將實參作為輸出型參數(shù)傳遞的調(diào)用完成后,該實參變量將會被該方法中的形參明確賦值,并將數(shù)據(jù)從方法
42、中傳出至調(diào)用處。out修飾符后應(yīng)跟隨形參類型相同的類型聲明。下面給出輸出型參數(shù)的實例, using System;public class Calculate public void Cal(int inNum, out int outNum1,out int outNum2 ) outNum1 = inNum * inNum; outNum2 = inNum*10; class Test public static void Main() Calculate cal = new Calculate(); int outnum1;/不必初始化 int outnum2;/不必初始化 cal.Ca
43、l(35, out outnum1,out outnum2); Console.WriteLine("outnum1:0",outnum1); Console.WriteLine("outnum2:0",outnum2); 運行結(jié)果:傳遞個數(shù)不確定的參數(shù)當(dāng)需要傳遞的參數(shù)個數(shù)不確定時,如求幾個數(shù)的最大值,由于沒有規(guī)定是幾個數(shù),運行程序時,每次輸入的值的個數(shù)不一定一樣。為了解決這個問題,C#采用參數(shù)數(shù)組。形參數(shù)組前如果用params修飾符進行聲明就是參數(shù)數(shù)組,通過參數(shù)數(shù)組可以向函數(shù)傳遞個數(shù)變化的參數(shù)。using System;class ParamsTest
44、 static int ParamsMeth(ref int sum, params int arr) int i; for (i = 0; i < arr.Length; i+) sum = sum + arri; arri = arri * arri; return (arrarr.Length - 1); static void Main() int a = 1, 2, 3 ; int i, L; int s = 0,z=0; ParamsMeth(ref s, a);/數(shù)組作為實參 Console.WriteLine("數(shù)組作為實參的結(jié)果:"); Consol
45、e.WriteLine("和為:0", s); for (i = 0; i < a.Length; i+) Console.WriteLine("a0=1", i, ai); Console.WriteLine("與形參數(shù)組的元素屬于同一類型的變量做實參的結(jié)果:"); L = ParamsMeth(ref z, 23, 45);/與形參數(shù)組的元素屬于同一類型的變量做實參 Console.WriteLine("和為:0", z); Console.WriteLine("輸入最后數(shù)值的乘積:0"
46、;, L); 運行結(jié)果:10、 語句常用的簡單語句包括賦值語句、空語句、表達(dá)式語句、復(fù)合語句等C#中常用的三種分支技術(shù):條件運算符;if語句;switch語句。C#提供了4種循環(huán)語句:while、do_while、for和foreachbreak語句、continue語句、goto語句、return語句等。1) break語句除了在switch語句中使用break語句,它還用于循環(huán)結(jié)構(gòu)中,作用是結(jié)束其所在的結(jié)構(gòu)語句。它的格式是:break;break語句的目標(biāo)地址為包含它的switch、while、do、for、或foreach語句的結(jié)尾,如果不在這些語句塊中,編譯將出錯。2) continu
47、e語句continue語句用于循環(huán)結(jié)構(gòu)中,其作用是結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,接著進行下一次是否執(zhí)行循環(huán)體的判定。格式是:continue;continue語句重新開始一次包含它的while、do、for、或foreach語句的執(zhí)行,其目標(biāo)地址也是上述這些語句的內(nèi)嵌語句結(jié)尾,如果不在這些語句塊中,編譯將出錯。continue語句和break語句的區(qū)別是:continue只跳出一次循環(huán),而break語句則跳出整個循環(huán)語句或switch語句。當(dāng)有switch、while、do、for或foreach語句相互嵌套的時候,break語句只是跳出直接包含它的那個語句塊。如果要在多處嵌
48、套語句中完成轉(zhuǎn)移,必須使用goto語句。3) goto 語句goto語句的功能是將控制轉(zhuǎn)到由標(biāo)簽標(biāo)記的語句。格式是:goto 標(biāo)號標(biāo)識符;需要注意的是,goto語句使用比較方便,但是容易引起邏輯上的混亂,因此除了在switch語句中必須從一個case跳到另一個case的情況下可以使用goto語句外,其他情況下最好不要使用goto語句。4) return 語句 return語句的功能是從它所在的子函數(shù)返回該子函數(shù)的調(diào)用者。格式:return 表達(dá)式;注意,此處的“”符號,表示其里面的表達(dá)式是可選的。不帶表達(dá)式的return語句只有在不需要計算數(shù)值的子函數(shù)中出現(xiàn),也就是,其返回類型為void。帶表
49、達(dá)式的return語句只能用在計算數(shù)值的函數(shù)成員中,也就是其返回類型是非void。5)throw語句,它的作用是拋出異常11、 公共語言運行庫(Common Language Runtime,CLR) 12、 NET Framework類庫(Framework Class Library,F(xiàn)CL) 1)System.Object類2)異常處理Exception3)文件類System.IO 中包含用于在文件中讀取和寫入數(shù)據(jù)的類。 System.IO.Directory 公開用于創(chuàng)建、移動和枚舉目錄和子目錄的靜態(tài)方法。System.IO.File 提供用于創(chuàng)建、復(fù)制、刪除、移
50、動和打開文件的靜態(tài)方法。System.IO.Path 處理路徑名稱。System.IO.DirectoryInfo公開用于創(chuàng)建、移動和枚舉目錄和子目錄的實例方法。 System.IO.創(chuàng)建、復(fù)制、刪除、移動和打開文件的實例方法 System.IO. 以文件為主的 Stream,既支持同步讀寫操作,也支持異步讀寫操作。 System.IO.StreamReader 從字節(jié)流中讀取字符。 System.IO.StringWriter 向流中寫入字符。 System.IO. 偵聽文件系統(tǒng)更改通知,并在目錄或目錄中的文件發(fā)生更改時引發(fā)事件。Stream
51、Reader,StreamWriter完成文件的讀寫操作,String.Split()完成字符串的拆分。open save 引用一個Open 對象.為檢查用戶在退出對話框時是否單擊了”打開”按鈕,應(yīng)檢查 對象.ShowDialog()的返回值是否等于 DialogResult.OK用打開一個文件時,可用參數(shù)控制4)圖形類 Pen類的構(gòu)造函數(shù)有四種,使用方法如下。(1)創(chuàng)建某一顏色的Pen對象:public Pen(Color)(2)創(chuàng)建某一刷子樣式的Pen對象:public Pen(Brush)(3)創(chuàng)建某刷子樣式并具有相應(yīng)寬度的Pen對象:public Pen(Brush,float)(4)
52、創(chuàng)建某一顏色和相應(yīng)寬度的Pen對象:public Pen(Color,float) Pen對象的常用屬性(1)Alignment屬性:用來獲取或設(shè)置此Pen對象的對齊方式。(2)Color屬性:用來獲取或設(shè)置此Pen對象的顏色。畫橢圓 格式1:public void DrawEllipse( Pen pen, Rectangle rect); 格式2:public void DrawEllipse(Pen pen,int x,int y,int width, int height);(3) Width屬性:用來獲取或設(shè)置此Pen對象的寬度。畫矩形 格式1: public void DrawRe
53、ctangle( Pen pen, Rectangle rect); 格式2:public void DrawRectangle(Pen pen,int x,int y,int width,int height);13、 異常處理都處理哪些錯誤,舉例說明;異常(Exception)是程序執(zhí)行時遇到的任何錯誤情況或意外行為。如除數(shù)為零、分配內(nèi)存空間失敗,都能引發(fā)異常。異常處理(Exception Handing)指的是一種機制或方法,通過它,用戶創(chuàng)建的應(yīng)用程序能夠解決或處理異常。C#提供了一個標(biāo)準(zhǔn)類System.Exception,此類是所有異常的基類?;?Exception 下存在兩類異常:一個是從 SystemException派生的預(yù)定義公共語言運行庫異常類,另一個是從 ApplicationException派生的用戶定義的應(yīng)用程序異常類。Except
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 7 線上醫(yī)療行業(yè)股票動態(tài)
- 賓館消費安全教育
- 歷史巨人的傳承與啟示
- 跨學(xué)科團隊協(xié)同
- 2025年金屬氫化物-鎳(MHNI)蓄電池項目發(fā)展計劃
- 嬰幼兒窒息的預(yù)防措施
- 教育驅(qū)動未來塑造
- 工業(yè)分析檢驗?zāi)M練習(xí)題
- 2024-2025學(xué)年人教版高二化學(xué)選擇性必修3配套課件 基礎(chǔ)課時16 有機合成
- 微生物工程習(xí)題庫(含答案)
- 全過程造價咨詢服務(wù)實施方案
- 實用參考從合規(guī)到績效:宋志平談央企學(xué)習(xí)型董事會建設(shè)
- GB/T 912-2008碳素結(jié)構(gòu)鋼和低合金結(jié)構(gòu)鋼熱軋薄鋼板和鋼帶
- GB/T 26480-2011閥門的檢驗和試驗
- 中共一大會址
- 云南省煙草買賣合同(標(biāo)準(zhǔn)版)
- 2023個人獨資企業(yè)清算報告(精選4篇)
- 衛(wèi)生統(tǒng)計學(xué)(全套課件)
- 2021年6月浙江省高考讀后續(xù)寫課件-高考英語復(fù)習(xí)備考
- 小學(xué)古詩詞80首(硬筆書法田字格)
-
評論
0/150
提交評論