2023年Net面試題大全個(gè)人整理_第1頁
2023年Net面試題大全個(gè)人整理_第2頁
2023年Net面試題大全個(gè)人整理_第3頁
2023年Net面試題大全個(gè)人整理_第4頁
2023年Net面試題大全個(gè)人整理_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2.列舉ASP.NET頁面之間傳遞值的幾種方式。答:QueryString是一種非常簡樸的傳值方式,他可以將傳送的值顯示在瀏覽器的地址欄中。假如是傳遞一個(gè)或多個(gè)安全性規(guī)定不高或是結(jié)構(gòu)簡樸的數(shù)值時(shí),可以使用這個(gè)方法。但是對于傳遞數(shù)組或?qū)ο蟮脑挘筒荒苡眠@個(gè)方法了。Application對象的作用范圍是整個(gè)全局,也就是說對所有用戶都有效。其常用的方法用Lock和UnLock。Session變量想必這個(gè)肯定是大家使用中最常見的用法了,作用于用戶個(gè)人,所以,過量的存儲會導(dǎo)致服務(wù)器內(nèi)存資源的耗盡。Cookie對象變量這個(gè)也是大家常使用的方法,與Session同樣,其是什對每一個(gè)用戶而言的,但是有個(gè)本質(zhì)的區(qū)別,即Cookie是存放在客戶端的,而session是存放在服務(wù)器端的。并且Cookie的使用要配合ASP.NET內(nèi)置對象Request來使用。Server.Transfer方法這個(gè)才可以說是面象對象開發(fā)所使用的方法,其使用Server.Transfer方法把流程從當(dāng)前頁面引導(dǎo)到另一個(gè)頁面中,新的頁面使用前一個(gè)頁面的應(yīng)答流,所以這個(gè)方法是完全面象對象的,簡潔有效。3.一列數(shù)的規(guī)則如下:1、1、2、3、5、8、13、21、34..求第30位數(shù)是多少,用遞歸算法實(shí)現(xiàn)。答:publicstaticintCalculate(intx){intretInt=1;if(x>2){returnCalculate(x-2)+Calculate(x-1);}elsereturnretInt;}4.C#中的委托是什么?事件是不是一種委托?答:HYPERLINK":47873/help/1-4872/ms.help?method=page&id=0BB8CB6D-2F87-47C7-9D1F-D65C1CD01E9F&product=VS&productVersion=100&topicVersion=100&locale=ZH-CN&topicLocale=ZH-CN"委托是一種定義方法署名的類型,可以與具有兼容署名的任何方法關(guān)聯(lián)??梢酝ㄟ^委托調(diào)用方法。委托用于將方法作為參數(shù)傳遞給其他方法。委托具有以下特點(diǎn):委托類似于C++函數(shù)指針,但它們是類型安全的。委托允許將方法作為參數(shù)進(jìn)行傳遞。委托可用于定義回調(diào)方法。委托可以鏈接在一起;例如,可以對一個(gè)事件調(diào)用多個(gè)方法。方法不必與委托署名完全匹配。事件是一種特殊的委托。5.override與重載的區(qū)別答:Override:要擴(kuò)展或修改繼承的方法、屬性、索引器或事件的抽象實(shí)現(xiàn)或虛實(shí)現(xiàn),重寫的基方法必須與override方法具有相同的署名。方法重載:一個(gè)類中可以有一個(gè)以上的方法擁有相同的名稱。但必須有不相同的署名。6.假如在一個(gè)B/S結(jié)構(gòu)的系統(tǒng)中需要傳遞變量值,但是又不能使用Session、Cookie、Application,您有幾種方法進(jìn)行解決?答:QueryString、Server.Transfer方法。7.請編程遍歷頁面上所有TextBox控件并給它賦值為string.Empty?答:foreach(Controlcontrolinthis.Controls){if(controlisTextBox){TextBoxtb=(TextBox)control;tb.Text=String.Empty;}}8.請編程實(shí)現(xiàn)一個(gè)冒泡排序算法?答://冒泡排序publicstaticvoidMaoPaoSort(refint[]arrays){if(arrays!=null&&arrays.Length>0){for(inti=1;i<arrays.Length;i++){boolisChange=false;for(intj=0;j<arrays.Length-i;j++){if(arrays[j]>arrays[j+1]){inttempValue=arrays[j];arrays[j]=arrays[j+1];arrays[j+1]=tempValue;isChange=true;}}if(!isChange)break;}}}9.描述一下C#中索引器的實(shí)現(xiàn)過程,是否只能根據(jù)數(shù)字進(jìn)行索引?答:索引器允許類或結(jié)構(gòu)的實(shí)例就像數(shù)組同樣進(jìn)行索引。索引器類似于HYPERLINK":47873/help/1-4872/ms.help?method=page&id=E295A8A2-B357-4EE7-A12E-385A44146FA8&product=VS&productVersion=100&topicVersion=100&locale=ZH-CN&topicLocale=ZH-CN"屬性,不同之處在于它們的訪問器采用參數(shù)。PublicReturnTypethis[paramTypeindex]{get{}set{}},可以用任何類型進(jìn)行索引。10.求以下表達(dá)式的值,寫出您想到的一種或幾種實(shí)現(xiàn)方法:1-2+3-4+……+m答:publicstaticintsumMethod1(intm){intsum=0;for(inti=1;i<=m;i++){if(i%2!=0)sum+=i;elsesum-=i;}returnsum;}publicstat(yī)icintsumMethod2(intm){intsum=0;if(m%2!=0)sum=m/2+1;elsesum=-(m/2);returnsum;}12.在下面的例子里classA{publicA(){PrintFields();}publicvirtualvoidPrintFields(){}}classB:A{intx=1;inty;publicB(){y=-1;}publicoverridevoidPrintFields(){Console.WriteLine("x={0},y={1}",x,y);}}當(dāng)使用newB()創(chuàng)建B的實(shí)例時(shí),產(chǎn)生什么輸出?答:X=1,Y=013.什么叫應(yīng)用程序域?答:應(yīng)用程序域(applicationdomain)(AppDomain)一種邊界,它由公共語言運(yùn)營庫圍繞同一應(yīng)用程序范圍內(nèi)創(chuàng)建的對象建立(即,從應(yīng)用程序入口點(diǎn)開始,沿著對象激活的序列的任何位置)。應(yīng)用程序域有助于將在一個(gè)應(yīng)用程序中創(chuàng)建的對象與在其他應(yīng)用程序中創(chuàng)建的對象隔離,以使運(yùn)營時(shí)行為可以預(yù)知。在一個(gè)單獨(dú)的進(jìn)程中可以存在多個(gè)應(yīng)用程序域。14.CTS、CLS、CLR分別作何解釋?答:CTS:通用類型系統(tǒng)。CLS:通用語言規(guī)范。CLR:公共語言運(yùn)營庫。15.什么是裝箱和拆箱?答:裝箱:裝箱轉(zhuǎn)換是指將一個(gè)值類型隱式或顯式地轉(zhuǎn)換成一個(gè)object類型,拆箱:拆箱轉(zhuǎn)換是指將一個(gè)對象類型顯式地轉(zhuǎn)換成一個(gè)值類型。16.什么是受管制的代碼?答:受托管的代碼不能直接寫內(nèi)存,是安全的,它受CLR的內(nèi)存安全管理,而非托管代碼是非安全代碼,可以使用指針操作內(nèi)存18.net中讀寫數(shù)據(jù)庫需要用到那些類?他們的作用?答:DataSet:數(shù)據(jù)存儲器Connection對象,用來創(chuàng)HYPERLINK""\t"_blank"建和打開,關(guān)閉數(shù)據(jù)庫連接。Command對象,用來執(zhí)行各種sql語句或者調(diào)用HYPERLINK""\t"_blank"存儲過程。Adapter對象,數(shù)據(jù)HYPERLINK""適配器,用來執(zhí)行SQL語句,配HYPERLINK""\t"_blank"合數(shù)據(jù)集執(zhí)行比較多。DataReader,只讀的對象,有著很高的性能。21.在.net中,配件的意思是?答:程序集。(中間語言,源數(shù)據(jù),資源,裝配清單)22.常用的調(diào)用WebService的方法有哪些?答:1.使用WSDL.exe命令行工具。2.使用VS.NET中的AddWebReference菜單選項(xiàng)23..netRemoting的工作原理是什么?答:服務(wù)器端向客戶端發(fā)送一個(gè)進(jìn)程編號,一個(gè)程序域編號,以擬定對象的位置。31.公司規(guī)定開發(fā)一個(gè)繼承System.Windows.Forms.ListView類的組件,規(guī)定達(dá)成以下的特殊功能:點(diǎn)擊ListView各列列頭時(shí),能按照點(diǎn)擊列的每行值進(jìn)行重排視圖中的所有行(排序的方式如DataGrid相似)。根據(jù)您的知識,請簡要談一下您的思緒答:根據(jù)點(diǎn)擊的列頭,包該列的名稱取出,按照該列名排序后,再綁定到ListView中。35.能用foreach遍歷訪問的對象需要實(shí)現(xiàn)IEnumerable接口或聲明GetEnumerator方法的類型。36.GC是什么?為什么要有GC?答:GC是垃圾收集器。程序員不用緊張內(nèi)存管理,由于垃圾收集器會自動進(jìn)行管理。要請求垃圾收集,可以調(diào)用下面的方法之一:System.GC.Collect();37.Strings=newString("xyz");創(chuàng)建了幾個(gè)StringObject?答:兩個(gè)對象,一個(gè)是“xyx”,一個(gè)是指向“xyx”的引用對像s。38.abstractclass和interface有什么區(qū)別?答:抽象類:只能用做其它類的基類,它就是被設(shè)計(jì)來被繼承的。不能創(chuàng)建它的實(shí)例。它使用abstract修飾符來聲明。抽象類可以包含抽象成員,但不是必須的,它的成員可以抽象成員和普通帶實(shí)現(xiàn)的成員的任意組合。它自己可以派生自另一個(gè)抽象類。任何派生自抽象類的類必須使用override關(guān)鍵字實(shí)現(xiàn)該類所有的抽象成員,除非派生類自己也是抽象類。接口:接口是表達(dá)一組函數(shù)成員而不實(shí)現(xiàn)成員的引用類型。其它類和結(jié)構(gòu)可以實(shí)現(xiàn)接口。接口聲明不涉及數(shù)據(jù)成員。接口聲明只能包含如下類型的靜態(tài)成員函數(shù)的聲明:方法、屬性、事件、索引。接口的成員不能包含任何實(shí)現(xiàn)代碼,而在每一個(gè)成員聲明的主體后必須使用分號。接口名稱必須從大寫的I開始。它和類同樣,也可以聲明成分部接口。接口聲明可以有任何的訪問類型:public、protected、internal、privat(yī)e。接口成員是隱式Public的,不允許有任何訪問修飾符。什么是線程池為了幫我們減少創(chuàng)建和銷毀線程相關(guān)的成本,CLR為每一個(gè)進(jìn)程維護(hù)了一個(gè)線程池。一開始進(jìn)程的線程池是空的,假如進(jìn)程使用的線程被創(chuàng)建,并且完畢了線程的執(zhí)行,它不會被銷毀,而是加入到進(jìn)程的線程池中,這后,假如進(jìn)程需要一個(gè)此外一個(gè)線程,CLR就會從池中還原一個(gè)線程,這就節(jié)省了很多時(shí)間。39.啟動一個(gè)線程是用run()還是start()?答:啟動一個(gè)線程是調(diào)用start()方法,這并不意味著線程就會立即運(yùn)營,只是進(jìn)入了可運(yùn)營狀態(tài)。直接調(diào)用run()方法不會產(chǎn)生線程,而是把它當(dāng)作普通的方法調(diào)用,立即執(zhí)行40.接口是否可繼承接口?抽像類是否可實(shí)現(xiàn)(implements)接口?抽像類是否可繼承實(shí)體類(concreteclass)?答:接口可以繼承接口。抽像類可以實(shí)現(xiàn)(implements)接口,抽像類是否可繼承實(shí)體類,但前提是實(shí)體類必須有明確的構(gòu)造函數(shù)。41.構(gòu)造器Constructor是否可被override?答:構(gòu)造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。42.是否可以繼承String類?答:不可以,由于String類是密封類,被Sealed修飾符所修飾。44.兩個(gè)對像值相同(x.equals(y)==true),但卻可有不同的hashcode,這句話對不對?答:不對,有相同的hashcode。HashCode:可以簡樸的理解為內(nèi)存的地址。"==":操作比較的是兩個(gè)變量的值是否相等,對于引用型變量表達(dá)的是兩個(gè)變量在堆中存儲的地址是否相同,即棧中的內(nèi)容是否相同。"equals":操作表達(dá)的兩個(gè)變量是否是對同一個(gè)對象的引用,即堆中的內(nèi)容是否相同。而字符串是一個(gè)特殊的引用型類型,在C#語言中,重載了string對象的很多方法方法(涉及equals()方法),使string對象用起來就像是值類型同樣。45.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?答:可以。47.當(dāng)一個(gè)線程進(jìn)入一個(gè)對象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對象的其它方法?不能,一個(gè)對象的一個(gè)synchronized方法只能由一個(gè)線程訪問。49.List,Set,Map是否繼承自Collection接口?答:List,Set是Map不是51.數(shù)組有沒有length()這個(gè)方法?String有沒有l(wèi)ength()這個(gè)方法?答:數(shù)組和string都沒有Length()方法,只有Length屬性。52.slee(cuò)p()和wait()有什么區(qū)別?答:slee(cuò)p()方法是將當(dāng)前線程掛起指定的時(shí)間。wait()釋放對象上的鎖并阻塞當(dāng)前線程,直到它重新獲取該鎖。53.shorts1=1;s1=s1+1;有什么錯(cuò)?shorts1=1;s1+=1;有什么錯(cuò)?答:shorts1=1;s1=s1+1;有錯(cuò),s1是short型,s1+1是int型,不能隱式轉(zhuǎn)化為short型。可修改為s1=(short)(s1+1)。shorts1=1;s1+=1對的。復(fù)合賦值表達(dá)式自動地將所執(zhí)行計(jì)算的結(jié)果轉(zhuǎn)型為其左側(cè)變量的類型,s1+=1等價(jià)于s1=(short)s1+1;55.如何解決幾十萬條并發(fā)數(shù)據(jù)?答:用存儲過程或事務(wù)。取得最大標(biāo)記的時(shí)候同時(shí)更新..注意主鍵不是自增量方式這種方法并發(fā)的時(shí)候是不會有反復(fù)主鍵的..取得最大標(biāo)記要有一個(gè)存儲過程來獲取.56.Session有什么重大BUG,微軟提出了什么方法加以解決?答:是iis中由于有進(jìn)程回收機(jī)制,系統(tǒng)繁忙的話Session會丟失,可以用Sateserver或SQLServer數(shù)據(jù)庫的方式存儲Session但是這種方式比較慢,并且無法捕獲Session的END事件。57.進(jìn)程和線程的區(qū)別?答:進(jìn)程是系統(tǒng)進(jìn)行資源分派和調(diào)度的單位;線程是CPU調(diào)度和分派的單位,一個(gè)進(jìn)程可以有多個(gè)線程,這些線程共享這個(gè)進(jìn)程的資源。進(jìn)程:進(jìn)程就是一組資源,它們構(gòu)成了一個(gè)正在運(yùn)營的程序。線程:在進(jìn)程中系統(tǒng)創(chuàng)建了一個(gè)叫做線程的內(nèi)核對象,線程體現(xiàn)了一個(gè)程序的真實(shí)執(zhí)行情況。58.堆和棧的區(qū)別?答:棧是編譯期間就分派好的內(nèi)存空間,因此你的代碼中必須就棧的大小有明確的定義;堆是程序運(yùn)營期間動態(tài)分派的內(nèi)存空間,你可以根據(jù)程序的運(yùn)營情況擬定要分派的堆內(nèi)存的大小。棧:它是一個(gè)內(nèi)存數(shù)組,是一個(gè)LIFO的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)只能從棧頂插入和刪除。堆:它是一塊內(nèi)存區(qū)域,在堆里可以分派大塊的內(nèi)存用于存儲某類型的數(shù)據(jù),堆里的內(nèi)存可以以任意順序存入和取出。59.成員變量和成員函數(shù)前加static的作用?答:它們用來反映類的狀態(tài)。靜態(tài)成員它被類的所有實(shí)例所共享,所有實(shí)例都訪問同一內(nèi)存位置。它們獨(dú)立于所有的類實(shí)例,即使沒有類實(shí)例,也可以調(diào)用類的靜態(tài)成員。60.ASP。NET與ASP相比,重要有哪些進(jìn)步?答:asp解釋形,aspx編譯型,性能提高,可以跟美工的工作分開進(jìn)行,更有助于團(tuán)隊(duì)開發(fā)。61.產(chǎn)生一個(gè)int數(shù)組,長度為100,并向其中隨機(jī)插入1-100,并且不能反復(fù)。publicstaticint[]BuildIntArray(){int[]retsInt=newint[100];List<int>tempList=newList<int>();Randomrandom=newRandom();while(tempList.Count<100){intnum=random.Next(1,101);if(!tempList.Contains(num))tempList.Add(num);}tempList.Sort();for(inti=0;i<tempList.Count;i++)retsInt[i]=tempList[i];returnretsInt;}62.請說明在.net中常用的幾種頁面間傳遞參數(shù)的方法,并說出他們的優(yōu)缺陷。答:QueryString傳遞一個(gè)或多個(gè)安全性規(guī)定不高或是結(jié)構(gòu)簡樸的數(shù)值。但是對于傳遞數(shù)組或?qū)ο蟮脑?就不能用這個(gè)方法了session(viewstate)簡樸,但易丟失作用于用戶個(gè)人,過量的存儲會導(dǎo)致服務(wù)器內(nèi)存資源的耗盡。application對象的作用范圍是整個(gè)全局,也就是說對所有用戶都有效。其常用的方法用Lock和UnLockcookie簡樸,但也許不支持,也許被偽造Cookie是存放在客戶端的,而session是存放在服務(wù)器端的。并且Cookie的使用要配合ASP.NET內(nèi)置對象Request來使用inputttype="hidden"簡樸,也許被偽造url參數(shù)簡樸,顯示于地址欄,長度有限Server.Transfer把流程從當(dāng)前頁面引導(dǎo)到另一個(gè)頁面中,新的頁面使用前一個(gè)頁面的應(yīng)答流數(shù)據(jù)庫穩(wěn)定,安全,但性能相對弱63.請指出GAC的含義?答:全局程序集緩存。GAC(Global

AssemblyCache),他的作用是可以存放一些有很多程序都要用到的公共Assembly。這樣,很多程序就可以從GAC里面取得Assembly,而不需要再把所有要用到的Assembly都拷貝到應(yīng)用程序的執(zhí)行目錄下面。64.向服務(wù)器發(fā)送請求有幾種方式?答:get,post。get一般為鏈接方式,post一般為按鈕方式。區(qū)別:

Get方式,服務(wù)器端用Request.Qurystring取變量的值,安全性不高,傳送數(shù)據(jù)量小。

post方式,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù),安全性高。建議:1、get方式的安全性較Post方式要差些,包含機(jī)密信息的話,建議用Post數(shù)據(jù)提交方式;2、在做數(shù)據(jù)查詢時(shí),建議用Get方式;而在做數(shù)據(jù)添加、修改或刪除時(shí),建議用Post方式。65.Dat(yī)aReader與Dat(yī)aset有什么區(qū)別?答:連接數(shù)據(jù)庫時(shí)DataSet是非面向連接的,而Dat(yī)aReader是面向連接的。DataSet表達(dá)一個(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ù)到本地而已,它不是數(shù)據(jù)結(jié)構(gòu),而是網(wǎng)絡(luò)通訊組件的高層封裝。DataSet可以離線解決,前后滾動,而Dat(yī)aReader不能離線解決,且是只讀向前的,速度快。DataSet可以存儲數(shù)據(jù)庫各種對象的,比如表觸發(fā)器等,可以更新回本來的數(shù)據(jù)庫。而DataReader只能存儲游標(biāo)記錄,不可以更新回本來的數(shù)據(jù)庫,

它類似一個(gè)只能向前的游標(biāo)記錄集。66.軟件開發(fā)過程一般有幾個(gè)階段?每個(gè)階段的作用?答:軟件開發(fā)一般分為五個(gè)階段:問題的定義及規(guī)劃?此階段是軟件開發(fā)與需求方共同討論,重要擬定軟件的開發(fā)目的及其可行性。需求分析

在擬定軟件開發(fā)可行性的情況下,對軟件需要實(shí)現(xiàn)的各個(gè)功能進(jìn)行具體需求分析。需求分析階段是一個(gè)很重要的階段,這一階段做的好,將為整個(gè)軟件項(xiàng)目的開發(fā)打下良好的基礎(chǔ)?!拔ㄒ徊蛔兊氖亲兓陨怼?,同樣軟件需求也是在軟件開發(fā)過程中不斷變化和進(jìn)一步的,因此,我們必須定制需求變更計(jì)劃來應(yīng)付這種變化,以保護(hù)整個(gè)項(xiàng)目的正常進(jìn)行。軟件設(shè)計(jì)?此階段中要根據(jù)需求分析的結(jié)果,對整個(gè)軟件系統(tǒng)進(jìn)行設(shè)計(jì),如系統(tǒng)框架設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)等。軟件設(shè)計(jì)一般分為概要設(shè)計(jì)和具體設(shè)計(jì),軟件設(shè)計(jì)將為軟件程序編寫打下良好的基礎(chǔ)。程序編碼?此階段是將軟件設(shè)計(jì)的結(jié)果轉(zhuǎn)化為計(jì)算機(jī)可運(yùn)營的程序代碼。在程序編碼中必然要制定統(tǒng)一、符合標(biāo)準(zhǔn)的編寫規(guī)范。以保證程序的可讀性、易維護(hù)性。提高程序的運(yùn)營效率。軟件測試?在軟件設(shè)計(jì)完畢之后要進(jìn)行嚴(yán)密的測試,一發(fā)現(xiàn)軟件在整個(gè)軟件設(shè)計(jì)過程中存在的問題并加以糾正。整個(gè)測試階段分為單元測試、組裝測試、系統(tǒng)測試三個(gè)階段進(jìn)行。測試方法重要有白盒測試和黑盒測試。6.部署及維護(hù)。67.在c#中using和new這兩個(gè)關(guān)鍵字有什么意義,請寫出你所知道的意義?Uning:using做為命名空間指令:通過在源文獻(xiàn)頂端放置Using命名空間指令以避免不得不使用長名稱,它告知編譯器你將要使用來自某個(gè)指定命名空間的類型。using做為別名指令:它允許對一個(gè)命名空間或命名空間中的一個(gè)類型起一個(gè)別名。using語句:某些類型的非托管對象有數(shù)量限制或很花費(fèi)系統(tǒng)資源,這樣在代碼使用完它們后,就得盡也許快的釋放它們,using語句有助于簡化該過程并保證這些資源被適當(dāng)?shù)奶幹?。New:創(chuàng)建類和結(jié)構(gòu)的實(shí)例。隱藏基類的方法。創(chuàng)建匿名類型(var和new關(guān)鍵字一起使用時(shí)可以創(chuàng)建匿名類型,匿名類型只是一個(gè)繼承了Object的、沒有名稱的類,該類的定義從初始化器中推斷,類似于隱匿類型化的變量)。68.需要實(shí)現(xiàn)對一個(gè)字符串的解決,一方面將該字符串首尾的空格去掉,假如字符串中間尚有連續(xù)空格的話,僅保存一個(gè)空格,即允許字符串中間有多個(gè)空格,但連續(xù)的空格數(shù)不可超過一個(gè).答: stringstr="afdkdaskdfjiksdafj";stringstrAfter=Regex.Replace(str.Trim(),@"\s+","");69.下面這段代碼輸出什么?為什么?inti=5;intj=5;if(Object.ReferenceEquals(i,j))Console.WriteLine("Equal");elseConsole.WriteLine("NotEqual");答:NotEqual,由于ReferenceEquals是Object的靜態(tài)方法,用于比較兩個(gè)引用類型的對象是否是對于同一個(gè)對象的引用,對于值類型它總是返回false。34.ReferenceEquals,==,Equals的區(qū)別String對于聲明的相同的字符串在堆上只保存一個(gè)Copy,所以有相同字符串值的兩個(gè)字符串變量將會指向相同的Reference。ReferenceEquals:?它是Object的靜態(tài)方法,用于比較兩個(gè)引用類型的對象是否是對于同一個(gè)對象的引用,對于值類型它總是返回false。==:?它是一個(gè)可以重載的二元操作符,可以用于比較兩個(gè)對象是否相等。

對于內(nèi)置值類型,==判斷的是兩個(gè)對象的代數(shù)值是否相等。它會根據(jù)需要自動進(jìn)行必要的類型轉(zhuǎn)換,并根據(jù)兩個(gè)對象的值是否相等返回true或者false,而對于用戶定義的值類型,假如沒有重載==操作符,==將是不可以使用的。

對于引用類型,==默認(rèn)的行為與ReferenceEquals的行為相同,僅有兩個(gè)對象指向同一個(gè)Reference的時(shí)候才返回true。但是.NETFramework中的類很多對==進(jìn)行了重載,例如String類的==與Equals的行為相同,判斷兩個(gè)字符串的內(nèi)容是否相等。所以在應(yīng)用中,對于系統(tǒng)定義的引用類型建議不要使用==操作符,以免程序出現(xiàn)與預(yù)期不同的運(yùn)營結(jié)果。Equals():?它對于值類型和引用類型的定義不同,對于值類型,類型相同,并且數(shù)值相同(對于struct的每個(gè)成員都必須相同),則Equals返回true,否則返回false。而對于引用類型,默認(rèn)的行為與ReferenceEquals的行為相同,僅有兩個(gè)對象指向同一個(gè)Reference的時(shí)候才返回true??梢愿鶕?jù)需要對Equals進(jìn)行重載,例如String類的Equals用于判斷兩個(gè)字符串的內(nèi)容是否相等。70.什么叫做SQL注入,如何防止?請舉例說明。答:運(yùn)用sql語言漏洞獲得合法身份登陸系統(tǒng)。如身份驗(yàn)證的程序設(shè)計(jì)成:SqlCommandcom=newSqlCommand("Select*fromuserswhereusername='"+t_name.text+"'andpwd='"+t_pwd.text+"'");objectobj=com.ExcuteScale();if(obj!=null){//通過驗(yàn)證}這段代碼容易被sql注入。如用戶在t_name中隨便輸入,在t_pwd中輸入1'or1='1就可以進(jìn)入系統(tǒng)了??梢圆捎脜?shù)化查詢語句進(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ì)模式publicsealedclassSun{privatestat(yī)icSuninstance=null;privateSun(){}publicstaticSunInstance{get{returninstance==null?instance=newSun():instance;}}}73.什么是ApplicationPool?答:Web應(yīng)用,類似ThreadPool,提高并發(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)記語言(ExtensibleMarkupLanguage)。它是一種以簡樸文本格式存儲數(shù)據(jù)的方式,這意味著它可以被任何計(jì)算機(jī)讀取,它在.Net中執(zhí)行大量的任務(wù),涉及描述應(yīng)用程序的配置、在Web服務(wù)之間傳輸信息等。77.什么是ASP.net中的用戶控件?答:用戶控件是可以在其中放置標(biāo)記和Web服務(wù)器控件的容器。然后,可以將用戶控件作為一個(gè)單元對待,為其定義屬性和方法。有了用戶控件,就不必為每個(gè)需要相同內(nèi)容的頁面多次創(chuàng)建用戶界面,編寫代碼,而只需要?jiǎng)?chuàng)建一個(gè)用戶控件,在幾個(gè)頁面中多次使用。78.列舉一下你所了解的XML技術(shù)及其應(yīng)用答:xml用于配置,用于保存靜態(tài)數(shù)據(jù)類型.接觸XML最多的是webServices..和config,soap協(xié)議79.ADO.net中常用的對象有哪些?分別描述一下。提供者對象:Connection提供到數(shù)據(jù)源的基本連接。Command使用它對數(shù)據(jù)源發(fā)出命令。CommandBuilder此對象用于構(gòu)建Sql命令,在基于單一表查詢的對象中進(jìn)行數(shù)據(jù)修改。DataReader這是一個(gè)快速而易用的對象,可以從數(shù)據(jù)源中讀取僅能前向和只讀的數(shù)據(jù)流。DataAdapter它是一個(gè)通用的類,可以執(zhí)行針對數(shù)據(jù)源的各種操作,涉及更新變動的數(shù)據(jù),填充DataSet對象以及其它操作。用戶對象:DataSet它表達(dá)一組相關(guān)表,在應(yīng)用程序中這些表作為一個(gè)單元來引用。80.什么是code-Behind技術(shù)。答:Code-Behind技術(shù)也稱為代碼隱藏技術(shù),在ASP.NET中通過ASPX頁面指向CS文獻(xiàn)的方法實(shí)現(xiàn)顯示邏輯和解決邏輯的分離,這樣有助于web應(yīng)用程序的創(chuàng)建。比如分工,美工和編程的可以個(gè)干各的,不用再像以前asp那樣都代碼和html代碼混在一起,難以維護(hù)。81.什么是SOAP,有哪些應(yīng)用。答:SOAP(SimpleObjectAccessProtocol)簡樸對象訪問協(xié)議,是在分散或分布式的環(huán)境中互換信息并執(zhí)行遠(yuǎn)程過程調(diào)用的協(xié)議,是一個(gè)基于XML的協(xié)議。使用SOAP,不用考慮任何特定的傳輸協(xié)議(最常用的還是HTTP協(xié)議),可以允許任何類型的對象或代碼,在任何平臺上,以任何一種語言互相通信。這種互相通信采用的是XML格式的消息。82.C#中property與attribute的區(qū)別,他們各有什么用處,這種機(jī)制的好處在哪里?Attribute是Microsoft.NETFramework文獻(xiàn)的元數(shù)據(jù),可以用來向運(yùn)營時(shí)描述你的代碼,或者在程序運(yùn)營的時(shí)候影響應(yīng)用程序的行為。Attribute是派生于System.Attribute類之下,它的重要作用是描述Property是面向?qū)ο缶幊痰幕靖拍?,提供了對私有字段的訪問封裝,在C#中以get和set訪問器方法實(shí)現(xiàn)對可讀可寫屬性的操作,提供了安全和靈活的數(shù)據(jù)訪問封裝。83.XML與HTML的重要區(qū)別XML是HTML的補(bǔ)充,而不是HTML的替代品,XML和HTML是兩種不同用途的語言。XML是被設(shè)計(jì)用來描述數(shù)據(jù)的,重點(diǎn)是:什么是數(shù)據(jù),如何存放數(shù)據(jù)。而HTML是被設(shè)計(jì)用來顯示數(shù)據(jù)的,重點(diǎn)是:顯示數(shù)據(jù)以及如何顯示數(shù)據(jù)更好上面。XML是自由的、可以擴(kuò)展的,XML標(biāo)記并不是預(yù)先規(guī)定好的,你必須發(fā)明你自XML標(biāo)記并不是,而在HTML文檔中必須使用規(guī)則中定義好的標(biāo)記。XML是區(qū)分大小寫字母的,HTML不區(qū)分。在HTML中,假如上下文清楚地顯示出段落或者列表鍵在何處結(jié)尾,那么你可以省略</p>或者</li>之類的結(jié)束標(biāo)記。在XML中,絕對不能省略掉結(jié)束標(biāo)記。在XML中,擁有單個(gè)標(biāo)記而沒有匹配的結(jié)束標(biāo)記的元素必須用一個(gè)/字符作為結(jié)尾。這樣分析器就知道不用查找結(jié)束標(biāo)記了。在XML中,屬性值必須封裝在引號中。在HTML中,引號是可用可不用的。在HTML中,可以擁有不帶值的屬性名。在XML中,所有的屬性都必須帶有相應(yīng)的值。84.c#中的三元運(yùn)算符是?答:?:。85.當(dāng)整數(shù)a賦值給一個(gè)object對像時(shí),整數(shù)a將會被?答:裝箱。86.類成員有5種可訪問形式?87.publicstaticconstintA=1;這段代碼有錯(cuò)誤么?是什么?答:const表現(xiàn)的很像靜態(tài)變量,它們對類的每個(gè)實(shí)例都是可見的,并且即使沒有類的實(shí)例它們也可以使用,而與靜態(tài)變量不同的是它沒有自己的存儲位置,而是在編譯時(shí)被編譯器替換,因此它不能聲明為Stat(yī)ic。88.floatf=-123.567F;inti=(int)f;i的值現(xiàn)在是-123將f的值強(qiáng)制轉(zhuǎn)換成int型,也就是將小數(shù)點(diǎn)后面的部分直接截取,保存整數(shù)部分。89.委托聲明的關(guān)鍵字是Delegat(yī)e。91.在Asp.net中所有的自定義用戶控件都必須繼承自Control。92.在.Net中所有可序列化的類都被標(biāo)記為[Serializable]。93.在.Net托管代碼中我們不用緊張內(nèi)存漏洞,這是由于有了GC垃圾回收機(jī)制。94.下面的代碼中有什么錯(cuò)誤嗎?______(dá)_usingSystem;classA{publicvirtualvoidF(){Console.WriteLine("A.F");}abstractclassB:A{publicabstractoverridevoidF();}答:abstractoverride是不可以一起修飾.95.當(dāng)類T只聲明了私有實(shí)例構(gòu)造函數(shù)時(shí),則在T的程序文本外部,不可以從T派生出新的類,由于子類無法調(diào)用父類的構(gòu)造函數(shù),不可以直接創(chuàng)建T的任何實(shí)例。96.Switch語句的格式switch(1+1){case1:Console.WriteLine("Wrong");break;case2:Console.WriteLine("right");break;default:Console.WriteLine("jiaoyanqing");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ù)料的情形,假如程序沒有提供解決該異常的代碼,系統(tǒng)會掛起這個(gè)程序。即使在Try塊中有Return語句,Finally塊也總是會在返回到調(diào)用代碼之前執(zhí)行。99.運(yùn)用operator聲明且僅聲明了==,有什么錯(cuò)誤么?答:要同時(shí)修改Equale和GetHash()?重載了"=="就必須重載"!="8.62-63=1等式不成立,請移動一個(gè)數(shù)字(不可以移動減號和等于號),使得等式成立,如何移動?答案:62移動成2的6次方105.對于這樣的一個(gè)枚舉類型:enumColor:byte{Red,Green,Blue,Orange};答:string[]ss=Enum.GetNames(typeof(Color));Arrayarray=Enum.GetValues(typeof(Color));107.C#可否對內(nèi)存進(jìn)行直接

溫馨提示

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

最新文檔

評論

0/150

提交評論