114培訓(xùn)網(wǎng)歡迎您來(lái)到西安.NET培訓(xùn)中心!

400-850-8622

全國(guó)統(tǒng)一學(xué)習(xí)專線 8:30-21:00

西安.NET培訓(xùn),西安IT培訓(xùn)

授課機(jī)構(gòu):西安.NET培訓(xùn)中心

關(guān)注度:1216

課程價(jià)格: ¥6500.00元

上課地址:請(qǐng)咨詢客服

開課時(shí)間:滾動(dòng)開班

咨詢熱線:400-850-8622

在線報(bào)名

課程詳情在線報(bào)名

更新時(shí)間:2024-12-22
西安.NET培訓(xùn)中心提供.NET面試題 QQ:1350366700 643430980 電話:029-8878946 1. C#中 property 與 attribute的區(qū)別,他們各有什么用處,這種機(jī)制的好處在哪里? 答:一個(gè)是屬性,用于存取類的字段,一個(gè)是特性,用來(lái)標(biāo)識(shí)類,方法等的附加性質(zhì) 2. 講一講你理解的web service,在dot net framework中,怎么很好的結(jié)合xml?(講概念就行了) 答:web服務(wù),是利用SOAP(簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議,Simple Object Access Protocol)在HTTP上執(zhí)行遠(yuǎn)程方法調(diào)用的一種方法,也可以使用WSDL(Web Service Description Language,Web服務(wù)描述語(yǔ)言)來(lái)完整的描述Web服務(wù),基于XML標(biāo)準(zhǔn)。 3. C#, Java 和 c++的特點(diǎn),有什么相同的地方,不同的地方,C#分別從c++和java中吸取了他們那些優(yōu)點(diǎn)? 答:都是面向?qū)ο蟮恼Z(yǔ)言,C#和java都是建立在虛擬機(jī)上的。從java中吸取了跨語(yǔ)言。 4. C#可否對(duì)內(nèi)存進(jìn)行直接的操作?(這可是個(gè)難點(diǎn)哦?要注意?。? 答:可以,只要標(biāo)記為unsafe 5. 用Visual C++ 6.0編寫的代碼(unmanaged code),如何在CLR下和其他dot net component結(jié)合? 答:被編譯成dll 6. 以前作過(guò)的一些項(xiàng)目?介紹一下自己的編程經(jīng)驗(yàn)。(這是蒙混不過(guò)去的,基本一問(wèn)就知道是真是假) 7. 你對(duì)公司有什么期望?你的薪水期望值?為什么學(xué)計(jì)算機(jī)?以前的工作經(jīng)驗(yàn)(這非常重要)? Q3: 維護(hù)數(shù)據(jù)庫(kù)的完整性、一致性、你喜歡用觸發(fā)器還是自寫業(yè)務(wù)邏輯?為什么 答:使用數(shù)據(jù)庫(kù)關(guān)系:這樣可以盡可能的規(guī)范編碼、對(duì)比較大型的開發(fā)來(lái)說(shuō)也容易維護(hù)數(shù)據(jù)的一致性和完整性,也讓數(shù)據(jù)庫(kù)的性能盡可能的發(fā)揮出來(lái)。 實(shí)在是不能使用數(shù)據(jù)庫(kù)的關(guān)系的時(shí)候才使用觸發(fā)器,這讓數(shù)據(jù)邏輯簡(jiǎn)單,但這時(shí)候要注意記錄文檔,不然,觸發(fā)器多了,維護(hù)難度會(huì)相當(dāng)大。 *是自己編寫邏輯:這樣會(huì)造成數(shù)據(jù)的一致性,完整性的維護(hù)邏輯相當(dāng)大,也十分分散,沒(méi)有良好的文檔記錄習(xí)慣的話,一旦任務(wù)出現(xiàn)交接,其他人很難繼續(xù)你未完成的工作,甚至于過(guò)一段時(shí)間以后,自己要完全理請(qǐng)邏輯都是一個(gè)麻煩的事!因?yàn)檫@些邏輯相當(dāng)于隱藏起來(lái)了的。 Q4:ADO。NET相對(duì)于ADO等主要有什么改進(jìn)? 答:ADO以Recordset存儲(chǔ),而ADO.NET則以DataSet表示。Recordset看起來(lái)更像單表,如果讓Recordset以多表的方式表示就必須在SQL中進(jìn)行多表連接。反之,DataSet可以是多個(gè)表的集合。ADO 的運(yùn)作是一種在線方式,這意味著不論是瀏覽或更新數(shù)據(jù)都必須是實(shí)時(shí)的。ADO.NET則使用離線方式,在訪問(wèn)數(shù)據(jù)的時(shí)候ADO.NET會(huì)利用XML制作數(shù)據(jù)的一份幅本,ADO.NET的數(shù)據(jù)庫(kù)連接也只有在這段時(shí)間需要在線。由于ADO使用COM技術(shù),這就要求所使用的數(shù)據(jù)類型必須符合COM規(guī)范,而ADO.NET基于XML格式,數(shù)據(jù)類型更為豐富并且不需要再做COM編排導(dǎo)致的數(shù)據(jù)類型轉(zhuǎn)換,從而提高了整體性能。 Q5:ASP。NET與ASP相比,主要有哪些進(jìn)步? 答:ASP.Net擺脫了以前ASP使用腳本語(yǔ)言來(lái)編程的缺點(diǎn),理論上可以使用任何編程語(yǔ)言包括C++ , VB , JS等等,當(dāng)然,最合適的編程語(yǔ)言還是MS為.Net Frmaework專門推出的C(讀c sharp),它可以看作是VC和Java的混合體吧,盡管MS自己講C#內(nèi)核中更多的象VC,但實(shí)際上我還是認(rèn)為它和Java更象一些吧。首先它是面向?qū)ο蟮木幊陶Z(yǔ)言,而不是一種腳本,所以它具有面向?qū)ο缶幊陶Z(yǔ)言的一切特性,比如封裝性、繼承性、多態(tài)性等等,這就解決了剛才談到的ASP的那些弱點(diǎn)。封裝性使得代碼邏輯清晰,易于管理,并且應(yīng)用到ASP.Net上就可以使業(yè)務(wù)邏輯和Html頁(yè)面分離,這樣無(wú)論頁(yè)面原型如何改變,業(yè)務(wù)邏輯代碼都不必做任何改動(dòng);繼承性和多態(tài)性使得代碼的可重用性大大提高,你可以通過(guò)繼承已有的對(duì)象*限度保護(hù)你以前的投資。并且C#和C++、Java一樣提供了完善的調(diào)試/糾錯(cuò)體系。 Q6:C#中的委托是什么?事件是不是一種委托? 答:委托是一種安全的函數(shù)指針,事件是一種消息機(jī)制 Q7:描述一下C#中索引器的實(shí)現(xiàn)過(guò)程,是否只能根據(jù)數(shù)字進(jìn)行索引? Q8:C#中要使一個(gè)類支持FOREACH遍歷,實(shí)現(xiàn)過(guò)程怎樣? 答:實(shí)現(xiàn)接口IEnumerable Q10:寫一個(gè)HTML頁(yè)面,實(shí)現(xiàn)以下功能,左鍵點(diǎn)擊頁(yè)面時(shí)顯示“您好”,右鍵點(diǎn)擊時(shí)顯示“禁止右鍵”。并在2分鐘后自動(dòng)關(guān)閉頁(yè)面。 Q11:你對(duì)XMLHTTP、WEBSERVICE 了解嗎?簡(jiǎn)單描述其特點(diǎn)、作用 答:XMLHTTP可以主動(dòng)獲取遠(yuǎn)端web代碼,類似HttpWebRequest Q12:接口和抽象類有什么區(qū)別?你選擇使用接口和抽象類的依據(jù)是什么? 答:接口用于規(guī)范,抽象類用于共性。接口中只能聲明方法,屬性,事件,索引器。而抽象類中可以有方法的實(shí)現(xiàn),也可以定義非靜態(tài)的類變量。抽象類是類,所以只能被單繼承,但是接口卻可以一次實(shí)現(xiàn)多個(gè)。抽象類可以提供某些方法的部分實(shí)現(xiàn),接口不可以.抽象類的實(shí)例是它的子類給出的。接口的實(shí)例是實(shí)現(xiàn)接口的類給出的。再抽象類中加入一個(gè)方法,那么它的子類就同時(shí)有了這個(gè)方法。而在接口中加入新的方法,那么實(shí)現(xiàn)它的類就要重新編寫(這就是為什么說(shuō)接口是一個(gè)類的規(guī)范了)。接口成員被定義為公共的,但抽象類的成員也可以是私有的、受保護(hù)的、內(nèi)部的或受保護(hù)的內(nèi)部成員(其中受保護(hù)的內(nèi)部成員只能在應(yīng)用程序的代碼或派生類中訪問(wèn))。此外接口不能包含字段、構(gòu)造函數(shù)、析構(gòu)函數(shù)、靜態(tài)成員或常量。 Q13:自定義控件和一般用戶控件的異同?如果要用這兩者之一,你會(huì)選擇哪種?為什么 答:用戶控件(UserControl): 擴(kuò)展名為*.ascx,跟*.aspx在結(jié)構(gòu)上相似,是指頁(yè)面中 加載的功能塊,只是用戶控件不能單獨(dú)作為頁(yè)面運(yùn)行,必須嵌入到*.aspx頁(yè)面或其它用 戶控件中使用 。 自定義控件,跟HtmlControl或WebControl相似,編譯后可以添加引用到工具欄里 面,直接用鼠標(biāo)拖動(dòng)使用。 看情況使用,如果功能比較多,會(huì)用自定義控件。 Q14:大概描述一下ASP。NET服務(wù)器控件的生命周期 答:(1)初始化----在此階段中,主要完成兩項(xiàng)工作:一、初始化在傳入Web請(qǐng)求生命周期內(nèi)所需的設(shè)置;二、跟蹤視圖狀態(tài)。首先,頁(yè)面框架通過(guò)默認(rèn)方式引發(fā)Init事件,并調(diào)用OnInit()方法,控件開發(fā)人員可以重寫該方法為控件提供初始化邏輯。此后,頁(yè)面框架將調(diào)用TrackViewState方法來(lái)跟蹤視圖狀態(tài)。需要注意的是:多數(shù)情況下,Control基類提供的TrackViewState方法實(shí)現(xiàn)已經(jīng)足夠了。只有在控件定義了復(fù)雜屬性時(shí),開發(fā)人員才可能需要重寫TrackViewState方法。 (2)加載視圖狀態(tài)----此階段的主要任務(wù)是檢查服務(wù)器控件是否存在以及是否需要將其狀態(tài)恢復(fù)到它在處理之前的請(qǐng)求結(jié)束的狀態(tài)。因此該過(guò)程發(fā)生在頁(yè)面回傳過(guò)程中,而不是初始化請(qǐng)求過(guò)程。在此階段,頁(yè)面框架將自動(dòng)恢復(fù)ViewState字典。如果服務(wù)器控件不維持其狀態(tài),或者它有能力通過(guò)默認(rèn)方式保存其所有狀態(tài)而使用ViewState字典,那么開發(fā)人員則不必實(shí)現(xiàn)任何邏輯。針對(duì)那些無(wú)法在ViewState字典中存儲(chǔ)的數(shù)據(jù)類型或者需要自定義狀態(tài)管理的情況,開發(fā)人員可以通過(guò)重寫LoadViewState方法來(lái)自定義狀態(tài)的恢復(fù)和管理。 (3)處理回發(fā)數(shù)據(jù)----若要使控件能夠檢查客戶端發(fā)回的窗體數(shù)據(jù),那么必須實(shí)現(xiàn)System.Web.UI.IPostBackDataHandler接口的 LoadPostData()方法。因此只有處理回發(fā)數(shù)據(jù)的控件參與此階段。 (4)加載----至此階段開始,控件樹中的服務(wù)器控件已創(chuàng)建并初始化、狀態(tài)已還原并且窗體控件反映了客戶端的數(shù)據(jù)。此時(shí),開發(fā)人員可以通過(guò)重寫OnLoad()方法來(lái)實(shí)現(xiàn)每個(gè)請(qǐng)求共同的邏輯。 (5)發(fā)送回發(fā)更改通知----在此階段,服務(wù)器控件通過(guò)引發(fā)事件作為一種信號(hào),表明由于回發(fā)而發(fā)生的控件狀態(tài)變化(因此該階段僅用于回發(fā)過(guò)程)。為了建立這種信號(hào),開發(fā)人員必須再次使用System.Web.UI.IPostBackDataHandler接口,并實(shí)現(xiàn)另一方法-RaisePostBackChangedEvent()。其判斷過(guò)程為:如果控件狀態(tài)因回發(fā)而更改,則LoadPostData()返回true;否則返回false。頁(yè)面框架跟蹤所有返回true的控件并在這些控件上調(diào)用RaisePostDataChangedEvent()。 (6)處理回發(fā)事件----該階段處理引起回發(fā)的客戶端事件。為了便于將客戶端事件映射到服務(wù)器端事件上進(jìn)行處理,開發(fā)人員在此階段可以通過(guò)實(shí)現(xiàn)System.Web.UI.IPostBackEventHandler接口的RaisePostBackEvent()方法來(lái)實(shí)現(xiàn)該邏輯。由此途徑,服務(wù)器控件將成功捕獲回發(fā)的客戶端事件進(jìn)行服務(wù)器端的相應(yīng)處理。 (7)預(yù)呈現(xiàn)----該階段完成在生成控件之前所需要的任何工作。通常情況下是通過(guò)重寫OnPreRender()方法完成該工作。需要注意的是:在該階段,可以保存在預(yù)呈現(xiàn)階段對(duì)控件狀態(tài)所做的更改,而在呈現(xiàn)階段進(jìn)行的更改則會(huì)丟失。 (8)保存狀態(tài)----如果服務(wù)器控件不維持狀態(tài),或者它有能力通過(guò)默認(rèn)方式保存其所有狀態(tài)而使用ViewState字典,那么開發(fā)人員不必在該階段實(shí)現(xiàn)任何邏輯。因?yàn)檫@個(gè)保存狀態(tài)的過(guò)程是自動(dòng)的。如果服務(wù)器控件需要自定義狀態(tài)保存,或者控件無(wú)法在ViewState字典中存儲(chǔ)特殊的數(shù)據(jù)類型,則需要通過(guò)重寫SaveViewState()方法來(lái)實(shí)現(xiàn)狀態(tài)保存。 (9)呈現(xiàn)----表示向HTTP輸出流中寫入標(biāo)記文本的過(guò)程。開發(fā)人員通過(guò)重寫Render()方法使其在輸出流上自定義標(biāo)記文本。 (10)處置----在此階段中,通過(guò)重寫Dispose ()方法完成釋放對(duì)昂貴資源的引用,如數(shù)據(jù)庫(kù)鏈接等。 (11)卸載----完成的工作與"處置"階段相同,但是,開發(fā)人員通常在Dispose()方法中執(zhí)行清除,而不處理Unload事件。 Q15:UML 答:統(tǒng)一建模語(yǔ)言。 Q16:面向?qū)ο蟮母拍?,主要特點(diǎn) 答:封裝,繼承,多態(tài) Q17:類劃分的依據(jù)。類粒度問(wèn)題 Q18:事物管理問(wèn)題
姓名不能為空
手機(jī)號(hào)格式錯(cuò)誤