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

下載本文檔

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

文檔簡介

1、 第1頁 / 共 17 2 .列舉ASP.NET 頁面之間傳遞值的幾種方式。 答: ? QueryString是一種非常簡單的傳值方式,他可以將傳送的值顯示在瀏覽器的地址欄中。如果是傳遞一個或多個安全性要求不高或是結(jié)構(gòu)簡單的數(shù)值時,可以使用這個方法。但是對于傳遞數(shù)組或?qū)ο蟮脑挘筒荒苡眠@個方法了。 ? Application對象的作用范圍是整個全局,也就是說對所有用戶都有效。其常用的方法用Lock和UnLock。 ? Session變量 想必這個肯定是大家使用中最常見的用法了,作用于用戶個人,所以,過量的存儲會導(dǎo)致服務(wù)器內(nèi)存資源的耗盡。 ? Cookie對象變量這個也是大家常使用的方法,與Se

2、ssion一樣,其是什對每一個用戶而言的,但是有個本質(zhì)的區(qū)別,即Cookie是存放在客戶端的,而session是存放在服務(wù)器端的。而且Cookie的使用要配合ASP.NET內(nèi)置對象Request來使用。 ? Server.Transfer方法這個才可以說是面象對象開發(fā)所使用的方法,其使用Server.Transfer方法把流程從當(dāng)前頁面引導(dǎo)到另一個頁面中,新的頁面使用前一個頁面的應(yīng)答流,所以這個方法是完全面象對象的,簡潔有效。 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)??梢酝ㄟ^委 托調(diào)用方法。委托用于將方法作為參數(shù)傳遞給其他方法。 委托具有以下特點(diǎn): ? 委托類似于 C+ 函數(shù)指針,但它們是類型安全的。 ? 委托允許將方法作為參數(shù)進(jìn)行傳遞。 ? 委托可用于定義回調(diào)方法。 ? 委托可以鏈接在一起;例如,可以對一個事件調(diào)用多個方法。 ? 方法不必與委托簽名

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

5、Empty? 答: foreach (Control control in this.Controls) if (control is TextBox) TextBox tb = (TextBox)control; tb.Text = String.Empty; 8.請編程實(shí)現(xiàn)一個冒泡排序算法? 答: /冒泡排序 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頁 / 共 17 9.描述一下C#中索引器的實(shí)現(xiàn)過程,是否只能根據(jù)數(shù)字進(jìn)行索引? 答:索引器允許類或結(jié)構(gòu)的實(shí)例就像數(shù)組一樣進(jì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 = -1; PrintFields() voidoverride public , x, y); 硜笽細(xì)礬笽紱Console.WriteLine( B的實(shí)例時,產(chǎn)生什么輸出?當(dāng)使用new B()創(chuàng)建 答:X=1,Y=0 13.什么叫應(yīng)用程序域?答:應(yīng)用程序域 (application domain) (AppDomain) 一種邊界,它由公共語言運(yùn)行庫圍繞同一應(yīng)用程

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

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

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

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

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

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

15、run()方法不會產(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.兩個對像值相同(x.equals(y) = true),但卻可有不同的hash code,這句話對不對? 答:不對,有相同的hash code。 Hash Code:可以簡單的理解為內(nèi)存的地址。 = : 操作比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量在堆中存儲 的地址是否相同,即棧中的內(nèi)容是否相同。 equals : 操作表示的兩個變量是否是對同一個對象的引用,即堆中的內(nèi)容是否相同。 而字符串是一個特殊的引用型類型,在C#語言中,重載了string 對象的很多方法方法(包括equals()方法),使string對象用起來就像是值類型一樣。 45.swtich

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

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

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

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

21、成員它被類的所有實(shí)例所共享,所有實(shí)例都訪問同一內(nèi)存位置。? 它們獨(dú)立于所有的類實(shí)例,即使沒有類實(shí)例,也可以調(diào)用類的靜態(tài)成員。? 相比,主要有哪些進(jìn)步?與ASPNET60.ASP。 可以跟美工的工作分開進(jìn)行,更有利于團(tuán)隊(duì)開發(fā)。aspxasp解釋形,編譯型,性能提高,答: ,并且不能重復(fù)。-100,并向其中隨機(jī)插入產(chǎn)生一個61.int數(shù)組,長度為1001 BuildIntArray() intstaticpublic 100; int new retsInt = int 第8頁 / 共 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.請說明在.net中常用的幾種頁面間傳遞參數(shù)的方法,并說出他們的優(yōu)缺點(diǎn)。 答: ? QueryString 傳遞一個或多個安全性要求不高或是結(jié)構(gòu)簡單的數(shù)值。但是對于傳遞數(shù)組或?qū)ο蟮脑挘筒荒苡?/p>

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

24、頁面中,新的頁面使用前一個頁面的應(yīng)答流 ? 數(shù)據(jù)庫穩(wěn)定,安全,但性能相對弱 63.請指出GAC的含義? 答:全局程序集緩存。 GAC(Global Assembly Cache),他的作用是可以存放一些有很多程序都要用到的公共Assembly。這樣,很多程序就可以從GAC里面取得Assembly,而不需要再把所有要用到的Assembly都拷貝到應(yīng)用程序的執(zhí)行目錄下面。 64.向服務(wù)器發(fā)送請求有幾種方式? 答: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ù)據(jù)添加、方式;Get建議用在做數(shù)據(jù)查詢時,、2 第9頁 / 共 17 65.DataReader與Dataset有什么區(qū)別? 答: ? 連接數(shù)據(jù)庫時DataSet是非面向連接的,而DataReader是面向連接的。 ? DataSet表示一個數(shù)據(jù)集,是數(shù)據(jù)在內(nèi)存中的緩存,可以包括多個表,是保存數(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可以離線處理,前后滾動,而DataReader不能離線處理,且是只讀向前的,速度快。 ? DataSet可以存儲數(shù)據(jù)庫各種對象的,比如表觸發(fā)器等,可以更新回原來的數(shù)據(jù)庫。而DataReader只能存儲游標(biāo)記錄,不可以更新回原來的數(shù)據(jù)庫, 它類似一個只能向前的游標(biāo)記錄集。 66.軟件開發(fā)過程一般有幾個階段?每個階段的作用?答: 軟件開發(fā)一般分為五個階段: ? 問題的定義及規(guī)劃 此階段是軟件開發(fā)與需求方共同討論,主要確定軟件的開發(fā)目標(biāo)及其可行性。 ? 需求分析 在確定軟件開發(fā)可行性的情況下,對軟件需要實(shí)現(xiàn)的各個功能進(jìn)行詳細(xì)需求分析。需求分

27、析階段是一個很重要的階段,這一階段做的好,將為整個軟件項(xiàng)目的開發(fā)打下良好的基礎(chǔ)?!拔ㄒ徊蛔兊氖亲兓旧怼保瑯榆浖枨笠彩窃谲浖_發(fā)過程中不斷變化和深入的,因此,我們必須定制需求變更計(jì)劃來應(yīng)付這種變化,以保護(hù)整個項(xiàng)目的正常進(jìn)行。 ? 軟件設(shè)計(jì) 此階段中要根據(jù)需求分析的結(jié)果,對整個軟件系統(tǒng)進(jìn)行設(shè)計(jì),如系統(tǒng)框架設(shè)計(jì)、數(shù)據(jù)庫設(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)行效率。 ? 軟件測試 在軟件設(shè)計(jì)完

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

29、完它們后,就得盡可能快的釋放它們,using語句有助于簡化該過程并確保這些資源被適當(dāng)?shù)奶幹谩?New : 第10頁 / 共 17 ? 創(chuàng)建類和結(jié)構(gòu)的實(shí)例。 ? 隱藏基類的方法。 ? 創(chuàng)建匿名類型(var和new關(guān)鍵字一起使用時可以創(chuàng)建匿名類型,匿名類型只是一個繼承了Object的、沒有名稱的類,該類的定義從初始化器中推斷,類似于隱匿類型化的變量)。 68.需要實(shí)現(xiàn)對一個字符串的處理,首先將該字符串首尾的空格去掉,如果字符串中間還有連續(xù)空格的話,僅保留一個空格,即允許字符串中間有多個空格,但連續(xù)的空格數(shù)不可超過一個. 答: 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)方法,用于比較兩個引用類型的對象ReferenceEqualsNot Equal是否是對于同一個對象的引用,對于值類型它總是返回false。 34. ReferenceEquals, = , Equals的區(qū)別 ? S

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

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

33、同一個Reference的時 候才返回true??梢愿鶕?jù)需要對Equals進(jìn)行重載,例如String類的Equals用于判斷兩個字符串的內(nèi)容是否相等。 第11頁 / 共 17 70.什么叫做SQL注入,如何防止?請舉例說明。 答:利用sql語言漏洞獲得合法身份登陸系統(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) /通過驗(yàn)證

34、這段代碼容易被sql注入。如用戶在t_name中隨便輸入,在t_pwd中輸入1 or 1=1 就可以進(jìn)入系統(tǒng)了??梢圆捎脜?shù)化查詢語句進(jìn)行防止。 71.什么是反射? 答:有關(guān)程序及其類型的數(shù)據(jù)被稱為元數(shù)據(jù)(metadata),它們保存在程序的程序集中。程序在運(yùn)行時,可以查看其它程序集及其本身的元數(shù)據(jù),一個運(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)記語言(Extensible Markup Language)。它是一種以簡單文本格式存儲數(shù)據(jù)的方式,這意味著

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

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

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

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

40、區(qū)別 ? XML是HTML的補(bǔ)充,而不是HTML的替代品,XML和HTML是兩種不同用途的語言。 是被設(shè)HTML是被設(shè)計(jì)用來描述數(shù)據(jù)的,重點(diǎn)是:什么是數(shù)據(jù),如何存放數(shù)據(jù)。而XML ? 第13頁 / 共 17 計(jì)用來顯示數(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中,絕對不能省略掉結(jié)束標(biāo)記。

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

42、答:而是在編譯時被編譯器替它們也可以使用,而與靜態(tài)變量不同的是它沒有自己的存儲位置, 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.下面的代碼中有什么錯誤

43、嗎? using System; 第14頁 / 共 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ù)時,則在T的程序文本外部,不可以從T派生出新的類,因?yàn)樽宇悷o法調(diào)用父類的構(gòu)造函數(shù),不可以直接創(chuàng)建T的任何實(shí)例。 96.Switch語句的格式 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的錯誤處理機(jī)制是什么? 答:.net錯誤處理機(jī)制采用try-catch-finally結(jié)構(gòu),發(fā)生錯誤時,層層上拋,直到找到匹配的Catch為止。 異常:它是程序中的運(yùn)行時錯誤,它違反了一個系統(tǒng)約束或應(yīng)用程序約束,或出現(xiàn)了在正常操作時未預(yù)料的情形,如果程序沒有提供處理該異常的代碼,系統(tǒng)會掛起這個程序。 即使在Tr

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

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論