計(jì)算機(jī)科學(xué)與技術(shù)NET框架程序設(shè)計(jì)-梁爽-課后習(xí)題答案_第1頁(yè)
計(jì)算機(jī)科學(xué)與技術(shù)NET框架程序設(shè)計(jì)-梁爽-課后習(xí)題答案_第2頁(yè)
計(jì)算機(jī)科學(xué)與技術(shù)NET框架程序設(shè)計(jì)-梁爽-課后習(xí)題答案_第3頁(yè)
計(jì)算機(jī)科學(xué)與技術(shù)NET框架程序設(shè)計(jì)-梁爽-課后習(xí)題答案_第4頁(yè)
計(jì)算機(jī)科學(xué)與技術(shù)NET框架程序設(shè)計(jì)-梁爽-課后習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、課后習(xí)題第2章1、答:AC2、答:值類型分配在堆棧上,通過(guò)拷貝賦值,通過(guò)值來(lái)傳參。引用類型分配在堆上,通過(guò)引用賦值,以引用傳參。(堆:用于動(dòng)態(tài)分配和釋放程序所使用的對(duì)象)3、答:裝箱和拆箱的概念是 C# 的類型系統(tǒng)的核心。它在 value-type 和 reference-type 之間的架起了一座橋梁,使得任何 value-type 的值都可以轉(zhuǎn)換為 object 類型的值,反過(guò)來(lái)轉(zhuǎn)換也可以。裝箱和拆箱使我們能夠統(tǒng)一地來(lái)考察類型系統(tǒng),其中任何類型的值最終都可以按對(duì)象處理。4、答:C5、答:所謂泛型,即通過(guò)參數(shù)化類型來(lái)實(shí)現(xiàn)在同一份代碼上操作多種數(shù)據(jù)類型。泛型類型是一種編程范式,它利用“參數(shù)化類

2、型”將類抽象化,從而實(shí)現(xiàn)更為靈活的復(fù)用。即在定義時(shí)為一種抽象的數(shù)據(jù)類型,到具體使用的時(shí)候用什么類型實(shí)例化就是什么類型。裝箱和拆箱在數(shù)據(jù)量很大的時(shí)候?qū)嶋H上系統(tǒng)性能是非常低的,為了解決這個(gè)問(wèn)題,在VS2005中提出了泛型的概念。6、答:如果要檢查泛型列表中的某個(gè)項(xiàng)以確定它是否有效,或者將它與其他某個(gè)項(xiàng)進(jìn)行比較,則編譯器必須在一定程度上保證它需要調(diào)用的運(yùn)算符或方法將受到客戶端代碼可能指定的任何類型參數(shù)的支持。這種保證是通過(guò)對(duì)泛型類定義應(yīng)用一個(gè)或多個(gè)約束獲得的。第3章1、答:把應(yīng)用程序源代碼經(jīng)過(guò)編譯器的編譯轉(zhuǎn)換成可以在cpu上直接運(yùn)行的二進(jìn)制編碼,也就是機(jī)器語(yǔ)言。2、答:實(shí)時(shí)編譯器 just-in-t

3、ime(JIT compiler3、答:Microsoft中間語(yǔ)言,或者托管代碼。編譯器將源代碼翻譯為Microsoft中間語(yǔ)言(MSIL)這是一組可以有效地轉(zhuǎn)換為本機(jī)代碼且獨(dú)立于CPU的指令。MSIL包括用于加載、存儲(chǔ)和初始化對(duì)象以及對(duì)對(duì)象調(diào)用方法的指令。4、答:元數(shù)據(jù)描述的是對(duì)應(yīng)托管代碼中定義的類型的信息,它與編譯對(duì)應(yīng)類型生成的MSIL存儲(chǔ)在同一個(gè)文件中。5. 答:可以適應(yīng)更廣泛的編譯環(huán)境。6. 答:元數(shù)據(jù)和程序集8 答:元數(shù)據(jù)描述模塊中包含的類型。它為類型所存儲(chǔ)的信息包括: 類型名稱。 類型可見(jiàn)性,可以是公共的或程序集。 此類型繼承自哪個(gè)類型(如果存在的話)。 該類型所實(shí)現(xiàn)的任何接口。

4、該類型所實(shí)現(xiàn)的任何方法。 該類型所公開(kāi)的任何屬性。 該類型提供的任何事件。11. 答:第4章1、答:System.CodeDom 命名空間包含可以用于表示源代碼文檔的元素和結(jié)構(gòu)的類。System.Collections 命名空間包含接口和類,這些接口和類定義各種對(duì)象(如列表、隊(duì)列、位、數(shù)組、哈希表和字典)的集合。 System.ComponentModel 命名空間提供用于實(shí)現(xiàn)組件和控件運(yùn)行時(shí)和設(shè)計(jì)時(shí)行為的類。System.Configuration 命名空間包含提供用于處理配置數(shù)據(jù)的編程模型的類型,允許訪問(wèn)基于.NET框架的應(yīng)用程序的配置信息。 System.Data 命名空間提供對(duì)表示 A

5、DO.NET 結(jié)構(gòu)的類的訪問(wèn)。System.Diagnostics 命名空間提供特定的類,使您能夠與系統(tǒng)進(jìn)程、事件日志和性能計(jì)數(shù)器進(jìn)行交互。 System.DirectoryServices 命名空間用以從托管代碼簡(jiǎn)便地訪問(wèn) Active Directory。System.Drawing 命名空間提供了對(duì) GDI+ 基本圖形功能的訪問(wèn)。System.EnterpriseServices 命名空間為企業(yè)應(yīng)用程序提供重要的基礎(chǔ)結(jié)構(gòu)。System.Globalization 命名空間包含定義區(qū)域性相關(guān)信息的類,這些信息包括語(yǔ)言、國(guó)家/地區(qū)、使用的日歷、日期、貨幣和數(shù)字的格式模式以及字符串的排序順序。

6、我們可以使用這些類編寫(xiě)全球化(國(guó)際化)應(yīng)用程序。System.IO 命名空間包含允許讀寫(xiě)文件和數(shù)據(jù)流的類型以及提供基本文件和目錄支持的類型。System.Management提供對(duì)大量管理信息和管理事件集合的訪問(wèn),這些信息和事件是與根據(jù) Windows 管理規(guī)范 (WMI 結(jié)構(gòu)對(duì)系統(tǒng)、設(shè)備和應(yīng)用程序設(shè)置檢測(cè)點(diǎn)有關(guān)的。 System.Media 命名空間包含用于播放聲音文件和訪問(wèn)系統(tǒng)提供的聲音的類。 System.Messaging 命名空間提供一些類,您可以使用這些類連接到、監(jiān)視和管理網(wǎng)絡(luò)上的消息隊(duì)列,并發(fā)送、接收或查看消息。System.Net 命名空間為當(dāng)前網(wǎng)絡(luò)上使用的多種協(xié)議提供了簡(jiǎn)單的

7、編程接口。System.Reflection 命名空間包含提供加載類型、方法和字段的有組織的視圖的類和接口,具有動(dòng)態(tài)創(chuàng)建和調(diào)用類型的功能。System.Resources 命名空間提供各種類和接口,這些類和接口使開(kāi)發(fā)人員可以創(chuàng)建、存儲(chǔ)和管理在應(yīng)用程序中使用的不同特定于區(qū)域性的資源。System.Runtime 命名空間包含支持不同命名空間(如 System、Runtime 命名空間和 Security 命名空間)的高級(jí)類型。 System.Security 命名空間提供公共語(yǔ)言運(yùn)行庫(kù)安全系統(tǒng)的基礎(chǔ)結(jié)構(gòu),包括權(quán)限的基類。System.ServiceProcess 命名空間提供用于實(shí)現(xiàn)、安裝和控制

8、 Windows 服務(wù)應(yīng)用程序的類。System.Text 命名空間包含表示 ASCII、Unicode、UTF-7 和 UTF-8 字符編碼的類;用于將字符塊轉(zhuǎn)換為字節(jié)塊和將字節(jié)塊轉(zhuǎn)換為字符塊的抽象基類;以及操作和格式化 String 對(duì)象而不創(chuàng)建 String 的中間實(shí)例的 Helper 類。 System.Threading 命名空間提供一些使得可以進(jìn)行多線程編程的類和接口。System.Timers 命名空間提供 Timer 組件,它使您可以指定的間隔引發(fā)事件。 System.Transactions是NET Framework 2.0 版包含的一個(gè)新的事務(wù)框架,此框架公開(kāi)事務(wù)的方式是

9、完全集成在 .NET Framework 中,并包含 ADO.NET。 System.Web 命名空間提供使得可以進(jìn)行瀏覽器與服務(wù)器通信的類和接口,可以說(shuō)System.Web 命名空間是.NET 框架類庫(kù)中最重要的命名空間,它包含的軟件實(shí)現(xiàn)了ASP.NET 。System.Xml命名空間中的類用于處理XML文檔。3、答:反射通??梢赃@樣來(lái)理解:審查元數(shù)據(jù)并收集關(guān)于它的類型信息的能力。元數(shù)據(jù)(編譯以后的最基本數(shù)據(jù)單元)就是一大堆的表,當(dāng)編譯程序集或者模塊時(shí),編譯器會(huì)創(chuàng)建一個(gè)類定義表,一個(gè)字段定義表,和一個(gè)方法定義表等。4、答:(1)使用Assembly定義和加載程序集,加載在程序集清單中列出模塊

10、,以及從此程序集中查找類型并創(chuàng)建該類型的實(shí)例。 (2)使用Module了解包含模塊的程序集以及模塊中的類等,還可以獲取在模塊上定義的所有全局方法或其他特定的非全局方法。 (3)使用ConstructorInfo了解構(gòu)造函數(shù)的名稱、參數(shù)、訪問(wèn)修飾符(如public 或private)和實(shí)現(xiàn)詳細(xì)信息(如abstract或virtual)等。使用Type的GetConstructors或GetConstructor方法來(lái)調(diào)用特定的構(gòu)造函數(shù)。 (4)使用MethodInfo了解方法的名稱、返回類型、參數(shù)、訪問(wèn)修飾符(如pulic 或private)和實(shí)現(xiàn)詳細(xì)信息(如abstract或virtual)等

11、。使用Type的GetMethods或GetMethod方法來(lái)調(diào)用特定的方法。 (5)使用FiedInfo了解字段的名稱、訪問(wèn)修飾符(如public或private)和實(shí)現(xiàn)詳細(xì)信息(如static)等,并獲取或設(shè)置字段值。(6)使用EventInfo了解事件的名稱、事件處理程序數(shù)據(jù)類型、自定義屬性、聲明類型和反射類型等,添加或移除事件處理程序。 (7)使用PropertyInfo了解屬性的名稱、數(shù)據(jù)類型、聲明類型、反射類型和只讀或可寫(xiě)狀態(tài)等,獲取或設(shè)置屬性值。 (8)使用ParameterInfo了解參數(shù)的名稱、數(shù)據(jù)類型、是輸入?yún)?shù)還是輸出參數(shù),以及參數(shù)在方法簽名中的位置等。5、答:XML閱讀

12、器的客戶端收到一個(gè)指向閱讀器實(shí)例的引用。該實(shí)例提取底層的數(shù)據(jù)流并把取出的數(shù)據(jù)呈現(xiàn)為一棵XML樹(shù)。閱讀器類提供只讀、向前的游標(biāo),你可以用閱讀器類提供的方法滾動(dòng)游標(biāo)遍歷結(jié)果集中的每一條數(shù)據(jù)。System.XML還包含XmlDocument類,提供了一個(gè)DOM API實(shí)現(xiàn)。盡管使用XmlReader是訪問(wèn)XML文檔信息的最快速方式,但XmlDocument類卻更常被使用,因?yàn)樗试S在一個(gè)文檔中進(jìn)行導(dǎo)航,可以隨心所欲地向后或向前移動(dòng)。開(kāi)發(fā)人員應(yīng)該選擇最合乎它需求的一種訪問(wèn)方式。6、答:事務(wù)的思想,即一組(兩個(gè)或多個(gè))操作作為一個(gè)單元成功或失敗,是眾多應(yīng)用程序的基礎(chǔ)。這個(gè)概念本身簡(jiǎn)單:所有操作要么全部成

13、功,要么全部失敗。然而,由于軟件可能會(huì)遭受無(wú)數(shù)的物理打擊,要確保一組操作只能夠得出這兩種結(jié)果,根本沒(méi)那么簡(jiǎn)單。因此,.NET Framework 提供了使創(chuàng)建事務(wù)性應(yīng)用程序更為容易的服務(wù)。使用System.Transactions控制事務(wù)性行為最簡(jiǎn)單的方法是使用TransactionScope類型的對(duì)象。以下的代碼描述了應(yīng)用程序如何使用該類創(chuàng)建新事務(wù),在其中執(zhí)行操作,然后提交事務(wù)。7、答:組件化技術(shù)指的是利用組件技術(shù)來(lái)開(kāi)發(fā)的那么一種方法。什么是組件技術(shù),它是組件化開(kāi)發(fā)的核心。組件是指我們可以用來(lái)重用,進(jìn)行發(fā)布,進(jìn)行部署的這么一種二進(jìn)制代碼單元。組件技術(shù)就是來(lái)規(guī)定如何來(lái)定義這樣一種代碼單元的規(guī)范

14、。所以組件并不一定是遵循某種規(guī)范,組件它有一些很明顯的特性和特征。對(duì)組件來(lái)說(shuō),最重要的一個(gè)技術(shù)和一個(gè)特點(diǎn),就是它定義了接口,就是如何來(lái)使用你的組件,組件內(nèi)部定義了實(shí)現(xiàn)接口的方法。但是接口的定義,通常來(lái)說(shuō)在大多數(shù)組件技術(shù)當(dāng)中都是和實(shí)現(xiàn)可以分離的,不是緊密地綁定在一起的。那么通過(guò)組件技術(shù)我們就可以去解決編程當(dāng)中兩個(gè)很大的問(wèn)題。第一個(gè)是代碼的重用,它非常方便來(lái)實(shí)現(xiàn)代碼的重用。第二個(gè)可以解決代碼的部署,以組件為單元來(lái)部署應(yīng)用程序,會(huì)比以前部署整個(gè)應(yīng)用程序來(lái)得便利和靈活得多。8、答:一個(gè)所謂的GUI應(yīng)用程序,會(huì)在屏幕上顯示一個(gè)表單,然后等待用戶輸入。這個(gè)輸入一般通過(guò)消息循環(huán)進(jìn)行處理,由它將輸入傳遞到適當(dāng)

15、位置一般作為一個(gè)或多個(gè)事件。例如當(dāng)用戶點(diǎn)擊按鈕,或擊鍵,或移動(dòng)鼠標(biāo)時(shí),就會(huì)產(chǎn)生事件,發(fā)送到用戶正在訪問(wèn)的表單中。關(guān)聯(lián)到表單上的代碼會(huì)處理這些事件,可能將結(jié)果輸出到屏幕上,也可能執(zhí)行別的任務(wù)。第5章1、2、答:Array、ArrayList、StringCollection和TreeNodeCollection實(shí)現(xiàn)了IList 接口。3、答:類型檢查不能在編譯時(shí)執(zhí)行。強(qiáng)制類型轉(zhuǎn)換的性能開(kāi)銷(xiāo)。對(duì)于值類型的集合,裝箱與取消裝箱的操作。4、 答:C5、答:A第6章1、答:B2. 答:public delegate bool ProcessOrderCallback (int Quantity, str

16、ing, string Item;3、答:delegate void MyDelegate(;MyDelegate a, b;a = new MyDelegate(Bar1.Foo1;b = new MyDelegate(Bar2.Foo2;a += b;4. 答:可以使用委托在委托對(duì)象的內(nèi)部封裝對(duì)方法的引用。因?yàn)槲惺穷愋桶踩?、牢靠的、托管的?duì)象,所以它們提供了指針的所有優(yōu)點(diǎn),而沒(méi)有指針的任何缺點(diǎn)。例如,委托總是指向正確的對(duì)象,并且不會(huì)破壞其他對(duì)象的內(nèi)存。5、答:public static event ProcessOrderEventHandler processOrderHandler

17、;6、.答:在下面的情況下使用委托: 需要語(yǔ)言樣式的函數(shù)指針 需要單個(gè)回調(diào)函數(shù) 希望注冊(cè)在調(diào)用或構(gòu)造時(shí)發(fā)生,而不是通過(guò)單獨(dú)的add 方法在下面的情況下使用事件: 客戶端代碼在事件發(fā)生前為回調(diào)函數(shù)注冊(cè),一般通過(guò)單獨(dú)的add 方法 一個(gè)以上的客戶端對(duì)象將受到影響第7章1、答:B2. 答:D3. 答:C4. 答:FileStream對(duì)文件進(jìn)行讀取和寫(xiě)入。MemoryStream 對(duì)內(nèi)存進(jìn)行讀取和寫(xiě)入。BufferedStream用于對(duì)另外一個(gè)流進(jìn)行緩沖讀取和寫(xiě)入。NetworkStream為網(wǎng)絡(luò)訪問(wèn)提供數(shù)據(jù)的基礎(chǔ)流5. 答:讀取、寫(xiě)入和查找。6. 答:BinaryReader和BinaryWrite

18、r。7. 答:Seek。8. 答:FileSystemWatcher。9. 答:獨(dú)立存儲(chǔ)是一種數(shù)據(jù)存儲(chǔ)機(jī)制,通過(guò)在代碼和保存的數(shù)據(jù)之間定義了標(biāo)準(zhǔn)化的關(guān)聯(lián)方式,從而提供隔離性和安全性。當(dāng)應(yīng)用程序在文件中存儲(chǔ)數(shù)據(jù)時(shí),必須小心選擇文件名和存儲(chǔ)位置,最大程度地減小其他應(yīng)用程序知道該存儲(chǔ)位置的可能性。因此,使數(shù)據(jù)不易受到損壞。獨(dú)立存儲(chǔ)提供了管理下載Web應(yīng)用程序文件來(lái)最大程度地減小存儲(chǔ)沖突的手段。通過(guò)獨(dú)立存儲(chǔ),代碼不再需要使用唯一路徑來(lái)指定文件系統(tǒng)中的安全位置,就可以保護(hù)數(shù)據(jù)以防止未授權(quán)的訪問(wèn)。不再需要指示應(yīng)用程序的存儲(chǔ)區(qū)域位置的硬代碼信息。通過(guò)獨(dú)立存儲(chǔ),可以使部分受信任的應(yīng)用程序以由計(jì)算機(jī)安全策略控制

19、的方式存儲(chǔ)數(shù)據(jù)。10. 答:文件通常表示持久化保存在磁盤(pán)上的字符序列,它具有名稱和路徑;而流是一個(gè)字符序列的抽象表示,它提供了一個(gè)向后備存儲(chǔ)區(qū)(如磁盤(pán)或內(nèi)存)中讀取和寫(xiě)入字節(jié)的方法。所有表示流的類都繼承自Stream類。Stream類和它的子類提供了對(duì)數(shù)據(jù)源和儲(chǔ)存庫(kù)的種類視圖,并將程序員與操作系統(tǒng)和底層設(shè)備的具體細(xì)節(jié)隔離開(kāi)。第8章1、答:B2、答:D3、答:C4、答:A5、答:文本系統(tǒng)站點(diǎn)、本地IIS站點(diǎn)、遠(yuǎn)程IIS站點(diǎn)和文件傳輸協(xié)議(FTP)站點(diǎn)。6、答:一般存放在App_Code文件中,在該文件夾中存放進(jìn)行編譯的實(shí)用工具類和業(yè)務(wù)對(duì)象(例如.cs文件)的源代碼或子文件夾。在應(yīng)用程序中將自動(dòng)引

20、用App_Code文件夾中的代碼。在動(dòng)態(tài)編譯的應(yīng)用程序中,當(dāng)對(duì)應(yīng)用程序發(fā)出首次請(qǐng)求時(shí),ASP.NET編譯App_Code文件夾中的代碼,以后如果檢測(cè)到任何更改則重新編譯該文件夾中的項(xiàng)。7、答:Page_Load事件。在Page對(duì)象上載入服務(wù)器控件。由于此時(shí)視圖狀態(tài)信息是可以使用的,因此在這里可以用代碼來(lái)改變控件的設(shè)置或者在頁(yè)面上顯示文本。8、答:標(biāo)準(zhǔn)控件、數(shù)據(jù)控件、數(shù)據(jù)源控件、驗(yàn)證控件、導(dǎo)航控件、登錄控件9、 答:Application對(duì)象、Session對(duì)象、數(shù)據(jù)庫(kù)支持10、 答:查詢字符串、隱藏域、狀態(tài)視圖、Cookies對(duì)象11、答:減少不必要的資源消耗。提高CPU和內(nèi)存的使用率。12、

21、答:選擇會(huì)話狀態(tài)提供程序、避免不必要的服務(wù)器往返、在適當(dāng)?shù)沫h(huán)境中使用服務(wù)器控件、只有在必要時(shí)使用狀態(tài)視圖、不要依賴代碼的異常處理、盡可能的使用自動(dòng)垃圾回收、使用服務(wù)器端重定向、使用存儲(chǔ)過(guò)程、使用DataReader、選擇合適的控件、只要可能就使用緩存、使用 ASP.NET 緩存機(jī)制有兩點(diǎn)需要注意、一定禁用調(diào)試模式13、 答:輸出緩存和數(shù)據(jù)緩存。14、 答:Forms驗(yàn)證、Windows驗(yàn)證和Passport驗(yàn)證第9章1、答案D2、答案C3、答案A4、答:Data source=(local;initial catalog=Customer;uid=sa;wd=sql2005;5、答:調(diào)用有參的存儲(chǔ)過(guò)程:1創(chuàng)建連接對(duì)象并設(shè)置其連接字符串的屬性2)創(chuàng)建命令對(duì)象并設(shè)置其Connection、CommandText及CommandType屬性。3)創(chuàng)建參數(shù)對(duì)象并設(shè)置其屬性,并將所有參數(shù)添加到命令對(duì)象的Parameters集合中4)執(zhí)行命令對(duì)象的方法5)關(guān)閉相關(guān)對(duì)象。調(diào)用無(wú)參存

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論