版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C#高級(jí)編程技術(shù)知識(shí)點(diǎn)總結(jié)第1章 .NET體系結(jié)構(gòu)內(nèi)容小結(jié)1、什么是.NET框架?.NET框架是.NET的基本體系結(jié)構(gòu)和.NET平臺(tái)的基礎(chǔ),該框架提供了具體的技術(shù)和服務(wù)。2、NET Framework 的組件l 公共語(yǔ)言運(yùn)行庫(kù)(CLR)l .NET Framework 類(lèi)庫(kù) l ADO.NET數(shù)據(jù)和 XMLl XML Web Servicel Web 窗體和服務(wù)兩個(gè)核心(重要)組件包括:公共語(yǔ)言運(yùn)行庫(kù)(或CLR)和.NET Framework 類(lèi)庫(kù).NET Framework的核心:公共語(yǔ)言運(yùn)行庫(kù)3、公共語(yǔ)言運(yùn)行庫(kù)的組成n 類(lèi)加載器:管理元數(shù)據(jù)、加載以及部署類(lèi)n MSIL到本機(jī)代碼編譯器:JI
2、T(Just In Time)編譯器將MSIL轉(zhuǎn)換成本機(jī)代碼n 代碼管理器:管理代碼的執(zhí)行n 垃圾回收器:為.NET Framework下的所有對(duì)象提供自動(dòng)生命期管理,即自動(dòng)內(nèi)存管理n 安全引擎:通過(guò)用戶標(biāo)識(shí)和代碼來(lái)源提供基于證據(jù)的安全機(jī)制n 調(diào)試器:使開(kāi)發(fā)人員可以調(diào)試應(yīng)用程序并跟蹤代碼的執(zhí)行n 類(lèi)型檢查器:不允許不安全的類(lèi)型轉(zhuǎn)換和出現(xiàn)未初始化的變量,通過(guò)檢驗(yàn)MSIL來(lái)確保類(lèi)型安全n 異常管理器:提供結(jié)構(gòu)化的異常管理機(jī)制n 線程支持:為需要多線程機(jī)制的應(yīng)用程序提供多線程編程支持n COM封送拆收器:提供與COM之間的封送轉(zhuǎn)換n .Net Framework類(lèi)庫(kù)支持:通過(guò)和運(yùn)行時(shí)集成代碼來(lái)支持N
3、et Framework類(lèi)庫(kù)。4、.NET Framework類(lèi)庫(kù)的作用和特點(diǎn)作用:供.NET托管程序使用的類(lèi)型集合特點(diǎn):是面向?qū)ο蟮?、是安全且易于擴(kuò)充、一致的編程接口、跨語(yǔ)言繼承和調(diào)試、但是不容易學(xué)習(xí)和掌握5、托管代碼的定義.NET Framework中將在公共語(yǔ)言運(yùn)行庫(kù)的控制下運(yùn)行的代碼稱(chēng)為托管代碼。 第2章 托管執(zhí)行環(huán)境的介紹1、編譯和運(yùn)行.NET Framework應(yīng)用程序編譯器選項(xiàng)l 當(dāng)使用命令行開(kāi)關(guān)/t:exe、/t:winexe或 /t:library時(shí),C#編譯器的輸出結(jié)果將是一個(gè)程序集。這三個(gè)命令行開(kāi)關(guān)得到的文件分別控制臺(tái)可執(zhí)行文件、windows可執(zhí)行文件和DLL文件。2、
4、程序集的組成要素l 程序集清單,包含程序集元數(shù)據(jù)。l 類(lèi)型元數(shù)據(jù)。l 實(shí)現(xiàn)這些類(lèi)型的Microsoft中間語(yǔ)言(MSIL)代碼。l 資源集。 在上面四個(gè)元素而言,只有程序集清單是必不可少的。3、元數(shù)據(jù)的定義和作用(1)定義:NET Framework中,元數(shù)據(jù)被稱(chēng)為“數(shù)據(jù)的數(shù)據(jù)”(2)作用:加載和定位類(lèi)、增強(qiáng)代碼安全性、提供反射支持4、我們可以使用ildasm.exe工具來(lái)查看PE文件中的元數(shù)據(jù)以及任何托管模塊中的MSIL代碼。5、命名空間和程序集(1)命名空間的特點(diǎn)命名空間能嵌套另一個(gè)命名空間 、在不同命名空間中,類(lèi)型可以具有相同的名字、一個(gè)命名空間能在多個(gè)文件中定義 、單獨(dú)一個(gè)源代碼文件能
5、定義多個(gè)命名空間(2)命名空間和程序集的關(guān)系一個(gè)程序集可以引用多個(gè)命名空間,一個(gè)命名空間也可以保存在多個(gè)程序集中第3章 使用組件1、在C#中,internal訪問(wèn)修飾符修飾的變量只能由當(dāng)前程序集訪問(wèn)2、當(dāng)引用其他程序集時(shí),應(yīng)該使用/reference 或 /r編譯開(kāi)關(guān)選項(xiàng)3、創(chuàng)建組件的方法l 使用命名空間和聲明類(lèi)l 創(chuàng)建類(lèi)的實(shí)現(xiàn)(方法、屬性和事件等)l 實(shí)現(xiàn)結(jié)構(gòu)化異常處理l 編譯組件(csc /out:組件名.dll /t:library xxxx.cs)l 例如:實(shí)驗(yàn)二創(chuàng)建的組件第4章 部署與版本控制1、版本號(hào)的構(gòu)成(能區(qū)分版本號(hào)是否兼容)2、部署弱名稱(chēng)程序集在應(yīng)用程序的子目錄中,在配置文件
6、中用probing子元素的privatePath屬性指定應(yīng)用程序加載私有程序集的路徑,配置文件名是應(yīng)用程序全名稱(chēng)加“.config”第5章 對(duì)象和類(lèi)型1、類(lèi)和結(jié)構(gòu) (1)給方法傳遞參數(shù)(引用傳遞和值傳遞)引用傳遞參數(shù):在變量通過(guò)引用傳遞給方法時(shí),被調(diào)用的方法得到的就是這個(gè)變量,所以在方法內(nèi)部對(duì)變量進(jìn)行的任何改變?cè)诜椒ㄍ顺龊笕耘f發(fā)揮作用值傳遞參數(shù):如果變量是通過(guò)值傳送給方法的,被調(diào)用的方法得到的是變量的一個(gè)副本,在方法退出后,對(duì)變量進(jìn)行的修改會(huì)丟失(2)兩個(gè)變量賦值(值類(lèi)型變量賦值和引用類(lèi)型變量賦值)賦值:值類(lèi)型通過(guò)拷貝賦值,默認(rèn)通過(guò)值來(lái)傳遞參數(shù),除非用ref關(guān)鍵字;引用類(lèi)型通過(guò)引用賦值,可能出
7、現(xiàn)幾個(gè)引用指向同一個(gè)對(duì)象,引用類(lèi)型用引用來(lái)傳遞變量(3)結(jié)構(gòu)和類(lèi)的區(qū)別:結(jié)構(gòu)是一種值數(shù)據(jù)類(lèi)型,而類(lèi)是一種引用數(shù)據(jù)類(lèi)型(4) 屬性的作用:提供了向外部對(duì)象和代碼公開(kāi)數(shù)據(jù)值的一種方便方法(5) System 空間下包含的Object對(duì)象是所有.NET 類(lèi)的隱含基類(lèi)2、類(lèi)型的使用 (1)CTS架構(gòu)(接口是惟一沒(méi)有繼承System. Object的類(lèi)型 )(2)Equals()方法Equals( )方法l Equals( )返回Boolean值,它指定兩個(gè)對(duì)象實(shí)例是否相等l 該方法有兩種形式:靜態(tài)方法和實(shí)例方法 說(shuō)明:對(duì)于值類(lèi)型來(lái)說(shuō),Equals方法比較的是值;而對(duì)于引用類(lèi)型來(lái)說(shuō),Equals方法比較
8、的是引用,即對(duì)象在內(nèi)存中的位置第7章 數(shù)組和集合1、System.Collections命名空間2、集合遍歷的思想和方法思想:可以使用IEnumerable.GetEnumerator來(lái)返回一個(gè)枚舉數(shù),然后用這個(gè)枚舉數(shù)來(lái)遍歷整個(gè)集合具體方法:protected void Print(System.Collections.集合類(lèi)型 list) IEnumerator enumerator=list.GetEnumerator(); while(enumerator.MoveNext() Console.WriteLine(string)enumerator.Current); 3、Queue類(lèi)和
9、Stack類(lèi)的常用方法和應(yīng)用舉例Stack類(lèi)常用的方法方法說(shuō)明Push將指定元素插入集合頂部Pop返回并刪除集合頂部元素Peek返回集合頂部元素,但不刪除該元素Stack類(lèi)的特點(diǎn):指定以后進(jìn)先出的順序來(lái)訪問(wèn)元素Queue類(lèi)常用的方法方法說(shuō)明Enqueue 將指定元素添加到集合的結(jié)尾Dequeue返回并刪除集合開(kāi)始處的元素Peek返回集合開(kāi)始處的元素,但不刪除該元素Queue類(lèi)的特點(diǎn):指定以先進(jìn)先出的順序來(lái)訪問(wèn)元素4、HashTable類(lèi)和SortedList類(lèi)的常用方法和應(yīng)用舉例(1) System.Collections命名空間中實(shí)現(xiàn)哈希算法的HashTable類(lèi) (2)HashTable類(lèi)
10、的作用 :應(yīng)用key/value的對(duì)應(yīng)關(guān)系,返回集合中的特定對(duì)象 說(shuō)明:添加元素時(shí),第一個(gè)參數(shù)是鍵,第二個(gè)參數(shù)是數(shù)據(jù);刪除元素時(shí),參數(shù)是鍵而非數(shù)據(jù) 在Hashtable集合中,各個(gè)元素并不是按照添加的順序存在于集合的內(nèi)部的。在Hashtable集合中,key/value對(duì)根據(jù)鍵的哈希代碼進(jìn)行組織排序 (3) SortedList類(lèi)是另外一種實(shí)現(xiàn)IDictionary的字典類(lèi)型,除了與Hashtable同樣可以經(jīng)過(guò)key搜索集合中的對(duì)象外,它同時(shí)支持類(lèi)似數(shù)組集合的索引搜索 說(shuō)明添加元素時(shí),第一個(gè)參數(shù)是鍵,第二個(gè)參數(shù)是數(shù)據(jù)mylist中的參數(shù)代表的是鍵mylist.GetByIndex()中的參數(shù)
11、代表的是索引刪除元素時(shí),參數(shù)代表鍵值 在SortedList集合中,key/value按鍵排序并可按照鍵和索引訪問(wèn) 第8章 委托和事件1、委托的概念及定義2、如何使用委托(委托的定義和使用,多播委托)(1)委托的定義形式 <modifiers>delegate<return_type><delegate_name>(argument_list);說(shuō)明:Ø 委托聲明定義一個(gè)類(lèi)型,該類(lèi)型封裝了一個(gè)有一系列參數(shù)和返回值的方法Ø 聲明委托類(lèi)似于方法的定義,但沒(méi)有方法體,定義的前面加上delegate關(guān)鍵字Ø 定義委托基本上是定義一個(gè)新類(lèi)
12、,可以在定義類(lèi)的任何地方定義委托,并可以使用訪問(wèn)修飾符(2)委托的使用/ 聲明一個(gè)委托,該委托擁有一個(gè)只有一個(gè)字符串類(lèi)型的參數(shù)且沒(méi)有返回值的方法public delegate void Del(string message);/定義預(yù)委托的方法,該方法可以是靜態(tài)的和實(shí)例的,只要預(yù)委托方法與委托具有相同的簽/名即可 Public void DelegateMethod(string message)/class Delclass System.Console.WriteLine(message);/將委托實(shí)例與預(yù)委托的方法相關(guān)聯(lián) Del handler=new Del(obj.DelegateM
13、ethod); 或 Del handler=obj.DelegateMethod;/調(diào)用委托,在委托對(duì)象的名稱(chēng)后加上被小括號(hào)括起來(lái)的參數(shù)的方式來(lái)調(diào)用委托Handler(“Hello World”);(3)多播委托事實(shí)上,委托不僅可以代表一個(gè)函數(shù),還可以組合“一堆”函數(shù),然后批量執(zhí)行它們,這里體現(xiàn)了多播委托(委托鏈)的思想利用+=向多播委托變量中增加委托方法、-=從多播委托變量中刪除委托方法3、如何使用事件(如何聲明事件,事件中的運(yùn)算符)聲明事件.Net通過(guò)一個(gè)稱(chēng)作委托(Delegate)的技術(shù)來(lái)實(shí)現(xiàn)事,聲明與事件關(guān)聯(lián)的委托聲明事件:<modifier>event<event_
14、type><event_name> 說(shuō)明: 事件聲明與字段聲明類(lèi)似,但是事件聲明必須使用event關(guān)鍵字事件類(lèi)型必須是委托類(lèi)型,而且該委托類(lèi)型必須至少具有和事件本身一樣的可訪問(wèn)性事件和方法一樣具有簽名,事件的簽名通過(guò)事件類(lèi)型中的委托類(lèi)型來(lái)決定的事件本質(zhì)上相當(dāng)于是一個(gè)委托變量。第9章 內(nèi)存管理1、值數(shù)據(jù)類(lèi)型和引用數(shù)據(jù)類(lèi)型的內(nèi)存布局 值類(lèi)型的實(shí)例使用棧上的內(nèi)存;而引用類(lèi)型的實(shí)例則使用托管堆上的內(nèi)存2、.NET釋放托管資源的方式:(1)要求程序員編寫(xiě)托管程序時(shí)為對(duì)象分配內(nèi)存,但在使用完畢后不必釋放它(2)另外我們也可以通過(guò)在程序中顯式調(diào)用System.GC命名空間中的Collect
15、方法,強(qiáng)制立即進(jìn)行垃圾回收3、釋放未托管資源的方式(1) 聲明一個(gè)析構(gòu)函數(shù),但是析構(gòu)函數(shù)的執(zhí)行時(shí)間是不確定的,另外析構(gòu)函數(shù)的執(zhí)行會(huì)延遲對(duì)象最終從內(nèi)存中刪除的時(shí)間 (2) 在類(lèi)中實(shí)現(xiàn)System.IDisposable接口中的Dispose方法IDisposable接口可控制釋放資源時(shí)間,但需要確保執(zhí)行Dispose()方法IDisposable接口支持顯式資源管理第10章 文件與I/O流以及序列化 1、.NET以流的概念來(lái)處理IO的問(wèn)題,相關(guān)的功能封裝為類(lèi)供應(yīng)用程序引用。2、所有與IO處理相關(guān)的類(lèi)位于System.IO命名空間,包括:FileStream 、MemoryStream 和Buff
16、eredStream類(lèi)注意:NetworkStream類(lèi)位于System.Net.Sockets命名空間中3、使用FileStream打開(kāi)一個(gè)文件時(shí),F(xiàn)ileMode參數(shù)可設(shè)置對(duì)文件覆蓋、創(chuàng)建、打開(kāi)等選項(xiàng)中的操作:Create:指定創(chuàng)建一個(gè)新文件,如果已經(jīng)存在一個(gè)同名文件,則舊文件被覆蓋CreateNew:定創(chuàng)建一個(gè)新文件并防止覆蓋已存在的同名文件4、定義一個(gè)可以被序列化的類(lèi)的步驟 通過(guò)Serializable特性將該類(lèi)標(biāo)注為可被序列化的類(lèi),如果不想序列化類(lèi)的某個(gè)字段時(shí),可以在其前面加上NonSerialized特性5、使一個(gè)類(lèi)實(shí)現(xiàn)自定義的序列化的步驟(1)類(lèi)應(yīng)該繼承自Iserializabl
17、e接口(2)實(shí)現(xiàn)接口的GetObjectData方法 (3)并提供一個(gè)帶 SerializationInfo和StreamingContext 參數(shù)的構(gòu)造函數(shù)第11章 線程1、線程對(duì)象的創(chuàng)建和啟動(dòng)線程由Thread類(lèi)創(chuàng)建的對(duì)象代表,Thread類(lèi)構(gòu)造函數(shù)的參數(shù)是一個(gè)ThreadStart委托類(lèi)型的參數(shù) ;當(dāng)線程對(duì)象創(chuàng)建以后,調(diào)用Start()方法將其啟動(dòng)舉例:Class MyThread /靜態(tài)線程函數(shù) public static void ThreadMethod1() /實(shí)例線程函數(shù) public void ThreadMethod2() /將靜態(tài)函數(shù)當(dāng)作線程函數(shù)Thread th1=ne
18、w Thread(new ThreadStart(MyThread.ThreadMethod1);/將實(shí)例方法當(dāng)作線程函數(shù)MyThread obj=new MyThread();Thread th2=new Thread(new ThreadStart(obj.ThreadMethod2);/當(dāng)線程對(duì)象創(chuàng)建以后,調(diào)用Start()方法將其啟動(dòng)th1.Start();th2.Start();2、背景線程IsBackground屬性為true的線程被稱(chēng)為“背景線程”。3、線程優(yōu)先級(jí)線程優(yōu)先級(jí),由Thread類(lèi)的Priority屬性標(biāo)識(shí)。4、線程同步使用Monitor類(lèi)控制線程同步時(shí),用Monito
19、r.Enter方法在指定對(duì)象上獲取排他鎖。第12章 訪問(wèn)Internet 1、端口號(hào)的取值范圍:0655352、TCP和UDP協(xié)議的區(qū)別(1)TCP是一種面向連接,保證可靠傳輸?shù)膮f(xié)議(2)UDP是一種無(wú)連接的協(xié)議,由于沒(méi)有連接,也就不能保證服務(wù)器能接收到數(shù)據(jù),但整體效果是傳輸比較快。 3、套接字的作用套接字是通信的基石,是支持TCP/IP協(xié)議的網(wǎng)絡(luò)通信的基本操作單元4、TcpClient類(lèi)建立客戶端程序的流程以及應(yīng)用5、TcpListener類(lèi)建立服務(wù)器端程序的流程以及應(yīng)用6、WebRequest類(lèi)的常用方法 Create()初始化一個(gè)新創(chuàng)建的WebRequest實(shí)例Public static
20、 WebRequest Create(string strUriString) 第13章 遠(yuǎn)程處理和XML Web Service1、信道和格式化程序(1) 在.NET遠(yuǎn)程處理框架中,HTTP信道的默認(rèn)格式化程序?yàn)镾oapFormatter(2) 在.NET遠(yuǎn)程處理框架中,TCP信道的默認(rèn)格式化程序?yàn)锽inaryFormatter2、服務(wù)器端激活模式下服務(wù)器端應(yīng)用程序開(kāi)發(fā)· 創(chuàng)建一個(gè)可以被遠(yuǎn)程訪問(wèn)的類(lèi) · 選擇并注冊(cè)信道TcpChannel channel=new TcpChannel(12345);ChannelServices.RegisterChannel(channel);· 使用服務(wù)器端激活方式注冊(cè)對(duì)象 RemotingConfiguration.RegisterWellKnownServiceType(typeof(Remot.HelloServer),"HelloWorld", WellKnownObjectMode.SingleCall);3、服務(wù)器端激活模式下客戶端應(yīng)用程序的開(kāi)發(fā)· 選擇并注冊(cè)信道 TcpChannel channel=new TcpChannel();ChannelServices.Register
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/Z 41305.6-2026環(huán)境條件電子設(shè)備振動(dòng)和沖擊第6部分:利用螺旋槳式飛機(jī)運(yùn)輸
- 流程工業(yè)智能制造技術(shù)理論及應(yīng)用 課件 第六章-流程工業(yè)數(shù)字孿生
- 內(nèi)務(wù)培訓(xùn)課件
- 濰坊沙龍-活動(dòng)策劃方案(3篇)
- 社會(huì)體育指導(dǎo)中心管理制度(3篇)
- 管理制度格式及范文圖片(3篇)
- 車(chē)間安全風(fēng)險(xiǎn)防范管理制度(3篇)
- 長(zhǎng)治燒烤活動(dòng)策劃方案(3篇)
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)倉(cāng)儲(chǔ)式超市行業(yè)發(fā)展運(yùn)行現(xiàn)狀及發(fā)展趨勢(shì)預(yù)測(cè)報(bào)告
- 紗線培訓(xùn)教學(xué)課件
- 寧德時(shí)代心理測(cè)試題及答案
- 2025至2030伴侶動(dòng)物診斷行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢(xún)研究報(bào)告
- 耳部刮痧課件
- 授信財(cái)務(wù)知識(shí)培訓(xùn)課件
- 師范類(lèi)學(xué)生教學(xué)能力提升計(jì)劃
- (2025)鐵路局招聘筆試真題及答案
- 2025年中國(guó)燕麥數(shù)據(jù)監(jiān)測(cè)報(bào)告
- 地理八上期末考試試卷及答案
- 騎車(chē)誤傷協(xié)議書(shū)
- 孔源性視網(wǎng)膜脫離護(hù)理查房
- 景區(qū)工作總結(jié)匯報(bào)
評(píng)論
0/150
提交評(píng)論