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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

15、位置一般作為一個或多個事件。例如當(dāng)用戶點擊按鈕,或擊鍵,或移動鼠標(biāo)時,就會產(chǎn)生事件,發(fā)送到用戶正在訪問的表單中。關(guān)聯(lián)到表單上的代碼會處理這些事件,可能將結(jié)果輸出到屏幕上,也可能執(zhí)行別的任務(wù)。第5章1、2、答:Array、ArrayList、StringCollection和TreeNodeCollection實現(xiàn)了IList 接口。3、答:類型檢查不能在編譯時執(zhí)行。強制類型轉(zhuǎn)換的性能開銷。對于值類型的集合,裝箱與取消裝箱的操作。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. 答:可以使用委托在委托對象的內(nèi)部封裝對方法的引用。因為委托是類型安全的、牢靠的、托管的對象,所以它們提供了指針的所有優(yōu)點,而沒有指針的任何缺點。例如,委托總是指向正確的對象,并且不會破壞其他對象的內(nèi)存。5、答:public static event ProcessOrderEventHandler processOrderHandler

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

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

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

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

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

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論