完整Net面試題大全個(gè)人整理_第1頁(yè)
完整Net面試題大全個(gè)人整理_第2頁(yè)
完整Net面試題大全個(gè)人整理_第3頁(yè)
完整Net面試題大全個(gè)人整理_第4頁(yè)
完整Net面試題大全個(gè)人整理_第5頁(yè)
已閱讀5頁(yè),還剩24頁(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、 第1頁(yè) / 共 17 2 .列舉ASP.NET 頁(yè)面之間傳遞值的幾種方式。 答: ? QueryString是一種非常簡(jiǎn)單的傳值方式,他可以將傳送的值顯示在瀏覽器的地址欄中。如果是傳遞一個(gè)或多個(gè)安全性要求不高或是結(jié)構(gòu)簡(jiǎn)單的數(shù)值時(shí),可以使用這個(gè)方法。但是對(duì)于傳遞數(shù)組或?qū)ο蟮脑?,就不能用這個(gè)方法了。 ? Application對(duì)象的作用范圍是整個(gè)全局,也就是說(shuō)對(duì)所有用戶都有效。其常用的方法用Lock和UnLock。 ? Session變量 想必這個(gè)肯定是大家使用中最常見(jiàn)的用法了,作用于用戶個(gè)人,所以,過(guò)量的存儲(chǔ)會(huì)導(dǎo)致服務(wù)器內(nèi)存資源的耗盡。 ? Cookie對(duì)象變量這個(gè)也是大家常使用的方法,與Se

2、ssion一樣,其是什對(duì)每一個(gè)用戶而言的,但是有個(gè)本質(zhì)的區(qū)別,即Cookie是存放在客戶端的,而session是存放在服務(wù)器端的。而且Cookie的使用要配合ASP.NET內(nèi)置對(duì)象Request來(lái)使用。 ? Server.Transfer方法這個(gè)才可以說(shuō)是面象對(duì)象開(kāi)發(fā)所使用的方法,其使用Server.Transfer方法把流程從當(dāng)前頁(yè)面引導(dǎo)到另一個(gè)頁(yè)面中,新的頁(yè)面使用前一個(gè)頁(yè)面的應(yīng)答流,所以這個(gè)方法是完全面象對(duì)象的,簡(jiǎn)潔有效。 3. 一列數(shù)的規(guī)則如下: 1、1、2、3、5、8、13、21、34. 求第30位數(shù)是多少, 用遞歸算法實(shí)現(xiàn)。 答:public static int Calculate

3、(int x) int retInt = 1; if (x 2) return Calculate(x - 2) + Calculate(x - 1); else return retInt; 4.C#中的委托是什么?事件是不是一種委托? 答 : 委托是一種定義方法簽名的類型,可以與具有兼容簽名的任何方法關(guān)聯(lián)??梢酝ㄟ^(guò)委 托調(diào)用方法。委托用于將方法作為參數(shù)傳遞給其他方法。 委托具有以下特點(diǎn): ? 委托類似于 C+ 函數(shù)指針,但它們是類型安全的。 ? 委托允許將方法作為參數(shù)進(jìn)行傳遞。 ? 委托可用于定義回調(diào)方法。 ? 委托可以鏈接在一起;例如,可以對(duì)一個(gè)事件調(diào)用多個(gè)方法。 ? 方法不必與委托簽名

4、完全匹配。 事件是一種特殊的委托。 5.override與重載的區(qū)別 答 : Override:要擴(kuò)展或修改繼承的方法、屬性、索引器或事件的抽象實(shí)現(xiàn)或虛實(shí)現(xiàn),重寫的基方法 方法具有相同的簽名。 override 必須與 第2頁(yè) / 共 17 方法重載:一個(gè)類中可以有一個(gè)以上的方法擁有相同的名稱。但必須有不相同的簽名。 6.如果在一個(gè)B/S結(jié)構(gòu)的系統(tǒng)中需要傳遞變量值,但是又不能使用Session、Cookie、Application,您有幾種方法進(jìn)行處理? 答 : QueryString、 Server.Transfer方法。 7.請(qǐng)編程遍歷頁(yè)面上所有TextBox控件并給它賦值為string.

5、Empty? 答: foreach (Control control in this.Controls) if (control is TextBox) TextBox tb = (TextBox)control; tb.Text = String.Empty; 8.請(qǐng)編程實(shí)現(xiàn)一個(gè)冒泡排序算法? 答: /冒泡排序 public static void MaoPaoSort(ref int arrays) if (arrays != null & arrays.Length 0) for (int i = 1; i arrays.Length; i+) bool isChange = false

6、; for (int j = 0; j arraysj + 1) int tempValue = arraysj; arraysj = arraysj + 1; arraysj + 1 = tempValue; isChange = true; if (!isChange) break; 第3頁(yè) / 共 17 9.描述一下C#中索引器的實(shí)現(xiàn)過(guò)程,是否只能根據(jù)數(shù)字進(jìn)行索引? 答:索引器允許類或結(jié)構(gòu)的實(shí)例就像數(shù)組一樣進(jìn)行索引。索引器類似于屬性,不同之處在于它們的訪問(wèn)器采用參數(shù)。 Public ReturnType this paramType indexget set,可以用任何類型進(jìn)行索引。 1

7、0.求以下表達(dá)式的值,寫出您想到的一種或幾種實(shí)現(xiàn)方法: 1-2+3-4+m 答: public static int sumMethod1(int m) int sum=0; for (int i = 1; i = m; i+) if (i % 2 != 0) sum += i; else sum -= i; return sum; public static int sumMethod2(int m) int sum = 0; if (m % 2 != 0) sum = m / 2 + 1; else sum = -(m / 2); return sum; 12.在下面的例子里 class

8、A public A() PrintFields(); public virtual void PrintFields() class B : A int x = 1; int y; B() public 17 / 共 第4頁(yè) y = -1; PrintFields() voidoverride public , x, y); 硜笽細(xì)礬笽紱Console.WriteLine( B的實(shí)例時(shí),產(chǎn)生什么輸出?當(dāng)使用new B()創(chuàng)建 答:X=1,Y=0 13.什么叫應(yīng)用程序域?答:應(yīng)用程序域 (application domain) (AppDomain) 一種邊界,它由公共語(yǔ)言運(yùn)行庫(kù)圍繞同一應(yīng)用程

9、序范圍內(nèi)創(chuàng)建的對(duì)象建立(即,從應(yīng)用程序入口點(diǎn)開(kāi)始,沿著對(duì)象激活的序列的任何位置)。應(yīng)用程序域有助于將在一個(gè)應(yīng)用程序中創(chuàng)建的對(duì)象與在其他應(yīng)用程序中創(chuàng)建的對(duì)象隔離,以使運(yùn)行時(shí)行為可以預(yù)知。在一個(gè)單獨(dú)的進(jìn)程中可以存在多個(gè)應(yīng)用程序域。 14.CTS、CLS、CLR分別作何解釋? 答:CTS:通用類型系統(tǒng)。CLS:通用語(yǔ)言規(guī)范。CLR:公共語(yǔ)言運(yùn)行庫(kù)。 15.什么是裝箱和拆箱? 答:裝箱:裝箱轉(zhuǎn)換是指將一個(gè)值類型隱式或顯式地轉(zhuǎn)換成一個(gè)object類型,拆箱:拆箱轉(zhuǎn)換是指將一個(gè)對(duì)象類型顯式地轉(zhuǎn)換成一個(gè)值類型。 16.什么是受管制的代碼? 答:受托管的代碼不能直接寫內(nèi)存,是安全的,它受CLR的內(nèi)存安全管理,

10、而非托管代碼是非安全代碼,可以使用指針操作內(nèi)存 18.net中讀寫數(shù)據(jù)庫(kù)需要用到那些類?他們的作用? 答:DataSet:數(shù)據(jù)存儲(chǔ)器 Connection對(duì)象,用來(lái)創(chuàng)建和打開(kāi),關(guān)閉數(shù)據(jù)庫(kù)連接。 Command對(duì)象,用來(lái)執(zhí)行各種sql語(yǔ)句或者調(diào)用存儲(chǔ)過(guò)程。 Adapter對(duì)象,數(shù)據(jù)適配器,用來(lái)執(zhí)行SQL語(yǔ)句,配合數(shù)據(jù)集執(zhí)行比較多。 DataReader,只讀的對(duì)象,有著很高的性能。 21.在.net中,配件的意思是? 答:程序集。(中間語(yǔ)言,源數(shù)據(jù),資源,裝配清單) 22.常用的調(diào)用WebService的方法有哪些? 答: 1.使用WSDL.exe命令行工具。 2.使用VS.NET中的Add W

11、eb Reference菜單選項(xiàng) 第5頁(yè) / 共 17 23.net Remoting 的工作原理是什么? 答:服務(wù)器端向客戶端發(fā)送一個(gè)進(jìn)程編號(hào),一個(gè)程序域編號(hào),以確定對(duì)象的位置。 31.公司要求開(kāi)發(fā)一個(gè)繼承System.Windows.Forms.ListView類的組件,要求達(dá)到以下的特殊功能:點(diǎn)擊ListView 各列列頭時(shí),能按照點(diǎn)擊列的每行值進(jìn)行重排視圖中的所有行 (排序的方式如DataGrid相似)。根據(jù)您的知識(shí),請(qǐng)簡(jiǎn)要談一下您的思路 答:根據(jù)點(diǎn)擊的列頭,包該列的名稱取出,按照該列名排序后,再綁定到ListView中。 35.能用foreach遍歷訪問(wèn)的對(duì)象需要實(shí)現(xiàn)IEnumera

12、ble接口或聲明GetEnumerator方法的類型。 36.GC是什么? 為什么要有GC? 答:GC是垃圾收集器。程序員不用擔(dān)心內(nèi)存管理,因?yàn)槔占鲿?huì)自動(dòng)進(jìn)行管理。要請(qǐng)求垃圾收集,可以調(diào)用下面的方法之一: System.GC.Collect(); ?匱牴湩?敮?瑓楲杮尨禍屺?創(chuàng)建了幾個(gè)String Object? 答:兩個(gè)對(duì)象,一個(gè)是“xyx”,一個(gè)是指向“xyx”的引用對(duì)像s。 38.abstract class和interface有什么區(qū)別? 答: 抽象類: ? 只能用做其它類的基類,它就是被設(shè)計(jì)來(lái)被繼承的。 ? 不能創(chuàng)建它的實(shí)例。 ? 它使用abstract修飾符來(lái)聲明。 ? 抽象

13、類可以包含抽象成員,但不是必須的,它的成員可以抽象成員和普通帶實(shí)現(xiàn)的成員的任意組合。 ? 它自己可以派生自另一個(gè)抽象類。任何派生自抽象類的類必須使用override關(guān)鍵字實(shí)現(xiàn)該類所有的抽象成員,除非派生類自己也是抽象類。 接口: ? 接口是表示一組函數(shù)成員而不實(shí)現(xiàn)成員的引用類型。其它類和結(jié)構(gòu)可以實(shí)現(xiàn)接口。 ? 接口聲明不包括數(shù)據(jù)成員。 ? 接口聲明只能包含如下類型的靜態(tài)成員函數(shù)的聲明:方法、屬性、事件、索引。 ? 接口的成員不能包含任何實(shí)現(xiàn)代碼,而在每一個(gè)成員聲明的主體后必須使用分號(hào)。 ? 接口名稱必須從大寫的I開(kāi)始。它和類一樣,也可以聲明成分部接口。 ? 接口聲明可以有任何的訪問(wèn)類型:pub

14、lic、protected、internal、private。 ? 接口成員是隱式Public的,不允許有任何訪問(wèn)修飾符。 1, 什么是線程池 為了幫我們降低創(chuàng)建和銷毀線程相關(guān)的成本,CLR為每一個(gè)進(jìn)程維護(hù)了一個(gè)線程池。一開(kāi)始進(jìn)程的線程池是空的,如果進(jìn)程使用的線程被創(chuàng)建,并且完成了線程的執(zhí)行,它不會(huì)被銷毀,而是加入到進(jìn)程的線程池中,這后,如果進(jìn)程需要一個(gè)另外一個(gè)線程,CLR就會(huì)從池中還原一個(gè)線程,這就節(jié)省了很多時(shí)間。 start()?還是run()啟動(dòng)一個(gè)線程是用39. 第6頁(yè) / 共 17 答:?jiǎn)?dòng)一個(gè)線程是調(diào)用start()方法,這并不意味著線程就會(huì)立即運(yùn)行,只是進(jìn)入了可運(yùn)行狀態(tài)。直接調(diào)用

15、run()方法不會(huì)產(chǎn)生線程,而是把它當(dāng)作普通的方法調(diào)用,馬上執(zhí)行 40.接口是否可繼承接口? 抽像類是否可實(shí)現(xiàn)(implements)接口? 抽像類是否可繼承實(shí)體類(concrete class)? 答:接口可以繼承接口。抽像類可以實(shí)現(xiàn)(implements)接口,抽像類是否可繼承實(shí)體類,但前提是實(shí)體類必須有明確的構(gòu)造函數(shù)。 41.構(gòu)造器Constructor是否可被override? 答:構(gòu)造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。 42.是否可以繼承String類? 答:不可以,因?yàn)镾tring類是密封類,被Sealed修飾

16、符所修飾。 44.兩個(gè)對(duì)像值相同(x.equals(y) = true),但卻可有不同的hash code,這句話對(duì)不對(duì)? 答:不對(duì),有相同的hash code。 Hash Code:可以簡(jiǎn)單的理解為內(nèi)存的地址。 = : 操作比較的是兩個(gè)變量的值是否相等,對(duì)于引用型變量表示的是兩個(gè)變量在堆中存儲(chǔ) 的地址是否相同,即棧中的內(nèi)容是否相同。 equals : 操作表示的兩個(gè)變量是否是對(duì)同一個(gè)對(duì)象的引用,即堆中的內(nèi)容是否相同。 而字符串是一個(gè)特殊的引用型類型,在C#語(yǔ)言中,重載了string 對(duì)象的很多方法方法(包括equals()方法),使string對(duì)象用起來(lái)就像是值類型一樣。 45.swtich

17、是否能作用在byte上,是否能作用在long上,是否能作用在String上? 答:可以。 47.當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對(duì)象的其它方法? 不能,一個(gè)對(duì)象的一個(gè)synchronized方法只能由一個(gè)線程訪問(wèn)。 49.List, Set, Map是否繼承自Collection接口? 答:List,Set是Map不是 51.數(shù)組有沒(méi)有l(wèi)ength()這個(gè)方法? String有沒(méi)有l(wèi)ength()這個(gè)方法? 答:數(shù)組和string都沒(méi)有Length()方法,只有Length屬性。 52.sleep() 和 wait() 有什么區(qū)別? 答:slee

18、p()方法是將當(dāng)前線程掛起指定的時(shí)間。 wait()釋放對(duì)象上的鎖并阻塞當(dāng)前線程,直到它重新獲取該鎖。 53.short s1 = 1; s1 = s1 + 1;有什么錯(cuò)? short s1 = 1; s1 += 1;有什么錯(cuò)? 答:short s1 = 1; s1 = s1 + 1;有錯(cuò),s1是short型,s1+1是int型,不能隱式轉(zhuǎn)化為short型。 正確。short s1 = 1; s1 += 1。s1 =(short)(s1 + 1) 可修改為 第7頁(yè) / 共 17 復(fù)合賦值表達(dá)式自動(dòng)地將所執(zhí)行計(jì)算的結(jié)果轉(zhuǎn)型為其左側(cè)變量的類型,s1+=1等價(jià)于s1=(short)s1+1; 55.

19、如何處理幾十萬(wàn)條并發(fā)數(shù)據(jù)? 答:用存儲(chǔ)過(guò)程或事務(wù)。取得最大標(biāo)識(shí)的時(shí)候同時(shí)更新.注意主鍵不是自增量方式這種方法并發(fā)的時(shí)候是不會(huì)有重復(fù)主鍵的.取得最大標(biāo)識(shí)要有一個(gè)存儲(chǔ)過(guò)程來(lái)獲取. 56.Session有什么重大BUG,微軟提出了什么方法加以解決? 答:是iis中由于有進(jìn)程回收機(jī)制,系統(tǒng)繁忙的話Session會(huì)丟失,可以用Sate server或SQL Server數(shù)據(jù)庫(kù)的方式存儲(chǔ)Session不過(guò)這種方式比較慢,而且無(wú)法捕獲Session的END事件。 57.進(jìn)程和線程的區(qū)別? 答:進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的單位;線程是CPU調(diào)度和分派的單位,一個(gè)進(jìn)程可以有多個(gè)線程,這些線程共享這個(gè)進(jìn)程的資源

20、。 進(jìn)程:進(jìn)程就是一組資源,它們構(gòu)成了一個(gè)正在運(yùn)行的程序。 線程:在進(jìn)程中系統(tǒng)創(chuàng)建了一個(gè)叫做線程的內(nèi)核對(duì)象,線程體現(xiàn)了一個(gè)程序的真實(shí)執(zhí)行情況。 堆和棧的區(qū)別?58.堆因此你的代碼中必須就棧的大小有明確的定義;答:棧是編譯期間就分配好的內(nèi)存空間,你可以根據(jù)程序的運(yùn)行情況確定要分配的堆內(nèi)存的大是程序運(yùn)行期間動(dòng)態(tài)分配的內(nèi)存空間, 小。 的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)只能從棧頂插入和刪除。棧:它是一個(gè)內(nèi)存數(shù)組,是一個(gè)LIFO堆里的內(nèi)存可在堆里可以分配大塊的內(nèi)存用于存儲(chǔ)某類型的數(shù)據(jù),堆:它是一塊內(nèi)存區(qū)域, 以以任意順序存入和取出。 static的作用?59.成員變量和成員函數(shù)前加 答: 它們用來(lái)反映類的狀態(tài)。? 靜態(tài)

21、成員它被類的所有實(shí)例所共享,所有實(shí)例都訪問(wèn)同一內(nèi)存位置。? 它們獨(dú)立于所有的類實(shí)例,即使沒(méi)有類實(shí)例,也可以調(diào)用類的靜態(tài)成員。? 相比,主要有哪些進(jìn)步?與ASPNET60.ASP。 可以跟美工的工作分開(kāi)進(jìn)行,更有利于團(tuán)隊(duì)開(kāi)發(fā)。aspxasp解釋形,編譯型,性能提高,答: ,并且不能重復(fù)。-100,并向其中隨機(jī)插入產(chǎn)生一個(gè)61.int數(shù)組,長(zhǎng)度為1001 BuildIntArray() intstaticpublic 100; int new retsInt = int 第8頁(yè) / 共 17 List tempList = new List(); Random random = new Rando

22、m(); while(tempList.Count 100) int num = random.Next(1, 101); if (!tempList.Contains(num) tempList.Add(num); tempList.Sort(); for (int i = 0; i tempList.Count; i+) retsInti = tempListi; return retsInt; 62.請(qǐng)說(shuō)明在.net中常用的幾種頁(yè)面間傳遞參數(shù)的方法,并說(shuō)出他們的優(yōu)缺點(diǎn)。 答: ? QueryString 傳遞一個(gè)或多個(gè)安全性要求不高或是結(jié)構(gòu)簡(jiǎn)單的數(shù)值。但是對(duì)于傳遞數(shù)組或?qū)ο蟮脑挘筒荒苡?/p>

23、這個(gè)方法了 ? session(viewstate) 簡(jiǎn)單,但易丟失 作用于用戶個(gè)人,過(guò)量的存儲(chǔ)會(huì)導(dǎo)致服務(wù)器內(nèi)存資源的耗盡。 ? application 對(duì)象的作用范圍是整個(gè)全局,也就是說(shuō)對(duì)所有用戶都有效。其常用的方法用Lock和UnLock ? cookie 簡(jiǎn)單,但可能不支持,可能被偽造 Cookie是存放在客戶端的,而session是存放在服務(wù)器端的。而且Cookie的使用要配合ASP.NET內(nèi)置對(duì)象Request來(lái)使用 ? input ttype=hidden 簡(jiǎn)單,可能被偽造 ? url參數(shù)簡(jiǎn)單,顯示于地址欄,長(zhǎng)度有限 ? Server.Transfer 把流程從當(dāng)前頁(yè)面引導(dǎo)到另一個(gè)

24、頁(yè)面中,新的頁(yè)面使用前一個(gè)頁(yè)面的應(yīng)答流 ? 數(shù)據(jù)庫(kù)穩(wěn)定,安全,但性能相對(duì)弱 63.請(qǐng)指出GAC的含義? 答:全局程序集緩存。 GAC(Global Assembly Cache),他的作用是可以存放一些有很多程序都要用到的公共Assembly。這樣,很多程序就可以從GAC里面取得Assembly,而不需要再把所有要用到的Assembly都拷貝到應(yīng)用程序的執(zhí)行目錄下面。 64.向服務(wù)器發(fā)送請(qǐng)求有幾種方式? 答:get,post。get一般為鏈接方式,post一般為按鈕方式。 區(qū)別: Get 方式, 服務(wù)器端用Request.Qurystring取變量的值,安全性不高,傳送數(shù)據(jù)量小。 post方式

25、,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù),安全性高。 建議: 1、get方式的安全性較Post方式要差些,包含機(jī)密信息的話,建議用Post數(shù)據(jù)提交方式; 方式。Post建議用修改或刪除時(shí),而在做數(shù)據(jù)添加、方式;Get建議用在做數(shù)據(jù)查詢時(shí),、2 第9頁(yè) / 共 17 65.DataReader與Dataset有什么區(qū)別? 答: ? 連接數(shù)據(jù)庫(kù)時(shí)DataSet是非面向連接的,而DataReader是面向連接的。 ? DataSet表示一個(gè)數(shù)據(jù)集,是數(shù)據(jù)在內(nèi)存中的緩存,可以包括多個(gè)表,是保存數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。而Datareader不承擔(dān)保存數(shù)據(jù)的責(zé)任,它只負(fù)責(zé)從數(shù)據(jù)源讀取數(shù)據(jù)到本地而已,它不

26、是數(shù)據(jù)結(jié)構(gòu),而是網(wǎng)絡(luò)通訊組件的高層封裝。 ? DataSet可以離線處理,前后滾動(dòng),而DataReader不能離線處理,且是只讀向前的,速度快。 ? DataSet可以存儲(chǔ)數(shù)據(jù)庫(kù)各種對(duì)象的,比如表觸發(fā)器等,可以更新回原來(lái)的數(shù)據(jù)庫(kù)。而DataReader只能存儲(chǔ)游標(biāo)記錄,不可以更新回原來(lái)的數(shù)據(jù)庫(kù), 它類似一個(gè)只能向前的游標(biāo)記錄集。 66.軟件開(kāi)發(fā)過(guò)程一般有幾個(gè)階段?每個(gè)階段的作用?答: 軟件開(kāi)發(fā)一般分為五個(gè)階段: ? 問(wèn)題的定義及規(guī)劃 此階段是軟件開(kāi)發(fā)與需求方共同討論,主要確定軟件的開(kāi)發(fā)目標(biāo)及其可行性。 ? 需求分析 在確定軟件開(kāi)發(fā)可行性的情況下,對(duì)軟件需要實(shí)現(xiàn)的各個(gè)功能進(jìn)行詳細(xì)需求分析。需求分

27、析階段是一個(gè)很重要的階段,這一階段做的好,將為整個(gè)軟件項(xiàng)目的開(kāi)發(fā)打下良好的基礎(chǔ)?!拔ㄒ徊蛔兊氖亲兓旧怼保瑯榆浖枨笠彩窃谲浖_(kāi)發(fā)過(guò)程中不斷變化和深入的,因此,我們必須定制需求變更計(jì)劃來(lái)應(yīng)付這種變化,以保護(hù)整個(gè)項(xiàng)目的正常進(jìn)行。 ? 軟件設(shè)計(jì) 此階段中要根據(jù)需求分析的結(jié)果,對(duì)整個(gè)軟件系統(tǒng)進(jìn)行設(shè)計(jì),如系統(tǒng)框架設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)等。軟件設(shè)計(jì)一般分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),軟件設(shè)計(jì)將為軟件程序編寫打下良好的基礎(chǔ)。 ? 程序編碼 此階段是將軟件設(shè)計(jì)的結(jié)果轉(zhuǎn)化為計(jì)算機(jī)可運(yùn)行的程序代碼。在程序編碼中必定要制定統(tǒng)一、符合標(biāo)準(zhǔn)的編寫規(guī)范。以保證程序的可讀性、易維護(hù)性。提高程序的運(yùn)行效率。 ? 軟件測(cè)試 在軟件設(shè)計(jì)完

28、成之后要進(jìn)行嚴(yán)密的測(cè)試,一發(fā)現(xiàn)軟件在整個(gè)軟件設(shè)計(jì)過(guò)程中存在的問(wèn)題并加以糾正。整個(gè)測(cè)試階段分為單元測(cè)試、組裝測(cè)試、系統(tǒng)測(cè)試三個(gè)階段進(jìn)行。測(cè)試方法主要有白盒測(cè)試和黑盒測(cè)試。 ? 6部署及維護(hù)。 67.在c#中using和new這兩個(gè)關(guān)鍵字有什么意義,請(qǐng)寫出你所知道的意義? Uning: ? using做為命名空間指令:通過(guò)在源文件頂端放置Using命名空間指令以避免不得不使用長(zhǎng)名稱,它通知編譯器你將要使用來(lái)自某個(gè)指定命名空間的類型。 ? using做為別名指令:它允許對(duì)一個(gè)命名空間或命名空間中的一個(gè)類型起一個(gè)別名。 ? using語(yǔ)句:某些類型的非托管對(duì)象有數(shù)量限制或很耗費(fèi)系統(tǒng)資源,這樣在代碼使用

29、完它們后,就得盡可能快的釋放它們,using語(yǔ)句有助于簡(jiǎn)化該過(guò)程并確保這些資源被適當(dāng)?shù)奶幹谩?New : 第10頁(yè) / 共 17 ? 創(chuàng)建類和結(jié)構(gòu)的實(shí)例。 ? 隱藏基類的方法。 ? 創(chuàng)建匿名類型(var和new關(guān)鍵字一起使用時(shí)可以創(chuàng)建匿名類型,匿名類型只是一個(gè)繼承了Object的、沒(méi)有名稱的類,該類的定義從初始化器中推斷,類似于隱匿類型化的變量)。 68.需要實(shí)現(xiàn)對(duì)一個(gè)字符串的處理,首先將該字符串首尾的空格去掉,如果字符串中間還有連續(xù)空格的話,僅保留一個(gè)空格,即允許字符串中間有多個(gè)空格,但連續(xù)的空格數(shù)不可超過(guò)一個(gè). 答: string str = ?慍摦摫?慍歳晤楪?獫慤橦?尠; string

30、 strAfter = Regex.Replace(str.Trim(), 局屜?, ?); 69.下面這段代碼輸出什么?為什么? int i = 5; int j = 5; if (Object.ReferenceEquals(i, j) Console.WriteLine(?畱污); else Console.WriteLine(乜瑯?畱污); 答:,因?yàn)槭荗bject的靜態(tài)方法,用于比較兩個(gè)引用類型的對(duì)象ReferenceEqualsNot Equal是否是對(duì)于同一個(gè)對(duì)象的引用,對(duì)于值類型它總是返回false。 34. ReferenceEquals, = , Equals的區(qū)別 ? S

31、tring對(duì)于聲明的相同的字符串在堆上只保留一個(gè)Copy,所以有相同字符串值的兩個(gè)字符串變量將會(huì)指向相同的Reference。 ? ReferenceEquals: 它是Object的靜態(tài)方法,用于比較兩個(gè)引用類型的對(duì)象是否是對(duì)于同一個(gè)對(duì)象的引用,對(duì)于值類型它總是返回false。 ? =: 它是一個(gè)可以重載的二元操作符,可以用于比較兩個(gè)對(duì)象是否相等。 對(duì)于內(nèi)置值類型,=判斷的是兩個(gè)對(duì)象的代數(shù)值是否相等。它會(huì)根據(jù)需要自動(dòng)進(jìn)行必要的類型轉(zhuǎn)換,并根據(jù)兩個(gè)對(duì)象的值是否相等返回true或者false,而對(duì)于用戶定義的值類型,如果沒(méi)有重載=操作符,=將是不能夠使用的。 對(duì)于引用類型,= 默認(rèn)的行為與Ref

32、erenceEquals的行為相同,僅有兩個(gè)對(duì)象指向同一個(gè)Reference的時(shí)候才返回true。但是.NET Framework中的類很多對(duì)=進(jìn)行了重載,例如String類的=與Equals的行為相同,判斷兩個(gè)字符串的內(nèi)容是否相等。所以在應(yīng)用中,對(duì)于 系統(tǒng)定義的引用類型建議不要使用=操作符,以免程序出現(xiàn)與預(yù)期不同的運(yùn)行結(jié)果。 ? Equals(): 它對(duì)于值類型和引用類型的定義不同,對(duì)于值類型,類型相同,并且數(shù)值相同(對(duì)于struct的每個(gè)成員都必須相同),則Equals返回 true,否則返回false。而對(duì)于引用類型,默認(rèn)的行為與ReferenceEquals的行為相同,僅有兩個(gè)對(duì)象指向

33、同一個(gè)Reference的時(shí) 候才返回true。可以根據(jù)需要對(duì)Equals進(jìn)行重載,例如String類的Equals用于判斷兩個(gè)字符串的內(nèi)容是否相等。 第11頁(yè) / 共 17 70.什么叫做SQL注入,如何防止?請(qǐng)舉例說(shuō)明。 答:利用sql語(yǔ)言漏洞獲得合法身份登陸系統(tǒng)。如身份驗(yàn)證的程序設(shè)計(jì)成: SqlCommand com=new SqlCommand(Select * from users where username=+t_name.text+ and pwd=+t_pwd.text+); object obj=com.ExcuteScale(); if(obj!=null) /通過(guò)驗(yàn)證

34、這段代碼容易被sql注入。如用戶在t_name中隨便輸入,在t_pwd中輸入1 or 1=1 就可以進(jìn)入系統(tǒng)了。可以采用參數(shù)化查詢語(yǔ)句進(jìn)行防止。 71.什么是反射? 答:有關(guān)程序及其類型的數(shù)據(jù)被稱為元數(shù)據(jù)(metadata),它們保存在程序的程序集中。程序在運(yùn)行時(shí),可以查看其它程序集及其本身的元數(shù)據(jù),一個(gè)運(yùn)行的程序查看本身及其它程序集的元數(shù)據(jù)的行為叫做反射(reflection)。 72.用Singleton如何寫設(shè)計(jì)模式 public sealed class Sun private static Sun instance = null; private Sun() public stati

35、c Sun Instance get return instance = null ? instance = new Sun() : instance; 73.什么是Application Pool? 答:Web應(yīng)用,類似Thread Pool,提高并發(fā)性能。 74.什么是虛函數(shù)?什么是抽像函數(shù)? ? 虛函數(shù):使它們可以在派生類中被重寫,它自身可以有函數(shù)的實(shí)現(xiàn)。 ? 抽像函數(shù):規(guī)定其非虛子類必須實(shí)現(xiàn)的函數(shù),必須被重寫,它自身不可有函數(shù)的實(shí)現(xiàn)。 75.什么是XML? 答:XML即可擴(kuò)展標(biāo)記語(yǔ)言(Extensible Markup Language)。它是一種以簡(jiǎn)單文本格式存儲(chǔ)數(shù)據(jù)的方式,這意味著

36、它可以被任何計(jì)算機(jī)讀取,它在.Net中執(zhí)行大量的任務(wù),包括描述應(yīng)用程序的配置、在Web服務(wù)之間傳輸信息等。 17 / 共 第12頁(yè) .net中的用戶控件?77.什么是ASP服務(wù)器控件的容器。然后,可以將用戶控件作 Web 答:用戶控件是能夠在其中放置標(biāo)記和就不必為每個(gè)需要相同內(nèi)容的頁(yè)面為其定義屬性和方法。有了用戶控件,為一個(gè)單元對(duì)待, 多次創(chuàng)建用戶界面,編寫代碼,而只需要?jiǎng)?chuàng)建一個(gè)用戶控件,在幾個(gè)頁(yè)面中多次使用。 技術(shù)及其應(yīng)用78.列舉一下你所了解的XML協(xié)config,soap最多的是web Services.和用于配置,用于保存靜態(tài)數(shù)據(jù)類型.接觸XML答:xml 議 中常用的對(duì)象有哪些?分別

37、描述一下。79.ADO.net 提供者對(duì)象: 提供到數(shù)據(jù)源的基本連接。? Connection 使用它對(duì)數(shù)據(jù)源發(fā)出命令。 Command ? 在基于單一表查詢的對(duì)象中進(jìn)行數(shù)據(jù)修改。Sql命令,? CommandBuilder 此對(duì)象用于構(gòu)建這是一個(gè)快速而易用的對(duì)象,可以從數(shù)據(jù)源中讀取僅能前向和只讀的數(shù)據(jù)DataReader ? 流。它是一個(gè)通用的類,可以執(zhí)行針對(duì)數(shù)據(jù)源的各種操作,包括更新變動(dòng)的數(shù)DataAdapter ? 對(duì)象以及其它操作。據(jù),填充DataSet 用戶對(duì)象: DataSet 它表示一組相關(guān)表,在應(yīng)用程序中這些表作為一個(gè)單元來(lái)引用。? Behind技術(shù)。80.什么是code-答:

38、Code-Behind技術(shù)也稱為代碼隱藏技術(shù),在ASP.NET中通過(guò)ASPX頁(yè)面指向CS文件的方法實(shí)現(xiàn)顯示邏輯和處理邏輯的分離,這樣有助于web應(yīng)用程序的創(chuàng)建。比如分工,美工和 代碼混在一起,難以維護(hù)。html那樣都代碼和編程的可以個(gè)干各的,不用再像以前asp 81.什么是SOAP,有哪些應(yīng)用。 答:SOAP(Simple Object Access Protocol )簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議,是在分散或分布式的環(huán)境中交換信息并執(zhí)行遠(yuǎn)程過(guò)程調(diào)用的協(xié)議,是一個(gè)基于XML的協(xié)議。使用SOAP,不用考慮任何特定的傳輸協(xié)議(最常用的還是HTTP協(xié)議),可以允許任何類型的對(duì)象或代碼,在任何平臺(tái)上,以任何一種語(yǔ)

39、言相互通信。這種相互通信采用的是XML格式的消息。 82.C#中 property 與 attribute的區(qū)別,他們各有什么用處,這種機(jī)制的好處在哪里? ? Attribute是Microsoft .NET Framework文件的元數(shù)據(jù),可以用來(lái)向運(yùn)行時(shí)描述你的代碼,或者在程序運(yùn)行的時(shí)候影響應(yīng)用程序的行為。Attribute是派生于System.Attribute類之下,它的主要作用是描述 ? Property是面向?qū)ο缶幊痰幕靖拍?,提供了?duì)私有字段的訪問(wèn)封裝,在C#中以get和set訪問(wèn)器方法實(shí)現(xiàn)對(duì)可讀可寫屬性的操作,提供了安全和靈活的數(shù)據(jù)訪問(wèn)封裝。 83.XML 與 HTML 的主要

40、區(qū)別 ? XML是HTML的補(bǔ)充,而不是HTML的替代品,XML和HTML是兩種不同用途的語(yǔ)言。 是被設(shè)HTML是被設(shè)計(jì)用來(lái)描述數(shù)據(jù)的,重點(diǎn)是:什么是數(shù)據(jù),如何存放數(shù)據(jù)。而XML ? 第13頁(yè) / 共 17 計(jì)用來(lái)顯示數(shù)據(jù)的,重點(diǎn)是:顯示數(shù)據(jù)以及如何顯示數(shù)據(jù)更好上面。 ? XML是自由的、可以擴(kuò)展的,XML標(biāo)記并不是預(yù)先規(guī)定好的,你必須創(chuàng)造你自XML標(biāo)記并不是,而在HTML文檔中必須使用規(guī)則中定義好的標(biāo)記。 ? XML是區(qū)分大小寫字母的,HTML不區(qū)分。 ? 在HTML中,如果上下文清楚地顯示出段落或者列表鍵在何處結(jié)尾,那么你可以省略或者之類的結(jié)束 標(biāo)記。在XML中,絕對(duì)不能省略掉結(jié)束標(biāo)記。

41、? 在XML中,擁有單個(gè)標(biāo)記而沒(méi)有匹配的結(jié)束標(biāo)記的元素必須用一個(gè) / 字符作為結(jié)尾。這樣分析器就知道不用 查找結(jié)束標(biāo)記了。 ? 在XML中,屬性值必須封裝在引號(hào)中。在HTML中,引號(hào)是可用可不用的。 ? 在HTML中,可以擁有不帶值的屬性名。在XML中,所有的屬性都必須帶有相應(yīng)的值。 84.c#中的三元運(yùn)算符是? 答:?:。 85.當(dāng)整數(shù)a賦值給一個(gè)object對(duì)像時(shí),整數(shù)a將會(huì)被? 答:裝箱。 86.類成員有5種可訪問(wèn)形式? 這段代碼有錯(cuò)誤么?是什么?87.public static const int A=1;表現(xiàn)的很像靜態(tài)變量,它們對(duì)類的每個(gè)實(shí)例都是可見(jiàn)的,而且即使沒(méi)有類的實(shí)例const

42、答:而是在編譯時(shí)被編譯器替它們也可以使用,而與靜態(tài)變量不同的是它沒(méi)有自己的存儲(chǔ)位置, Static。換,因此它不能聲明為 123 的值現(xiàn)在是 -88.float f=-123.567F; int i=(int)f;i 型,也就是將小數(shù)點(diǎn)后面的部分直接截取,保留整數(shù)部分。f的值強(qiáng)制轉(zhuǎn)換成int將 Delegate。89.委托聲明的關(guān)鍵字是 Control。在A中所有的自定義用戶控件都必須繼承自 91. 。 Serializable中所有可序列化的類都被標(biāo)記為92.在.Net 垃圾回收機(jī)制。.Net在托管代碼中我們不用擔(dān)心內(nèi)存漏洞,這是因?yàn)橛辛薌C93. _94.下面的代碼中有什么錯(cuò)誤

43、嗎? using System; 第14頁(yè) / 共 17 class A public virtual void F() Console.WriteLine(A.F); abstract class B:A public abstract override void F(); 答:abstract override 是不可以一起修飾. 95.當(dāng)類T只聲明了私有實(shí)例構(gòu)造函數(shù)時(shí),則在T的程序文本外部,不可以從T派生出新的類,因?yàn)樽宇悷o(wú)法調(diào)用父類的構(gòu)造函數(shù),不可以直接創(chuàng)建T的任何實(shí)例。 96.Switch語(yǔ)句的格式 switch (1 + 1) case 1: Console.WriteLine(壢

44、潲杮); break; case 2: Console.WriteLine(牜榪瑨); break; default: Console.WriteLine(橜慩禎湡楱杮); break; 97.在.Net中,類System.Web.UI.Page 可以被繼承么? 答:可以。 98.net的錯(cuò)誤處理機(jī)制是什么? 答:.net錯(cuò)誤處理機(jī)制采用try-catch-finally結(jié)構(gòu),發(fā)生錯(cuò)誤時(shí),層層上拋,直到找到匹配的Catch為止。 異常:它是程序中的運(yùn)行時(shí)錯(cuò)誤,它違反了一個(gè)系統(tǒng)約束或應(yīng)用程序約束,或出現(xiàn)了在正常操作時(shí)未預(yù)料的情形,如果程序沒(méi)有提供處理該異常的代碼,系統(tǒng)會(huì)掛起這個(gè)程序。 即使在Tr

45、y塊中有Return語(yǔ)句,F(xiàn)inally塊也總是會(huì)在返回到調(diào)用代碼之前執(zhí)行。 99.利用operator聲明且僅聲明了=,有什么錯(cuò)誤么? 答:要同時(shí)修改Equale和GetHash() ? 重載了= 就必須重載 != 8. 62-63=1 等式不成立,請(qǐng)移動(dòng)一個(gè)數(shù)字(不可以移動(dòng)減號(hào)和等于號(hào)),使得等式成立,如何移動(dòng)? 次方6的2移動(dòng)成:62答案 第15頁(yè) / 共 17 105.對(duì)于這樣的一個(gè)枚舉類型:enum Color : byte Red, Green, Blue, Orange ; 答:string ss = Enum.GetNames(typeof(Color); Array array = Enum.GetValues(typeof(Color); 107.C#可否對(duì)內(nèi)存進(jìn)行直接的操作? 答:C#可以直接對(duì)內(nèi)存進(jìn)行操作。但是默認(rèn)情況下,為了保持類型安全,C#不支持指針運(yùn)算。不過(guò),通過(guò)使用 unsafe 關(guān)鍵字,可以定義可使用指針的不安全上下文。在不安全的上下文中,類型可以是指針類型以及值類型或引用類型。 108.ADO.NET相對(duì)于

溫馨提示

  • 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)論