2023年傳智播客DotNet面試寶典_第1頁
2023年傳智播客DotNet面試寶典_第2頁
2023年傳智播客DotNet面試寶典_第3頁
2023年傳智播客DotNet面試寶典_第4頁
2023年傳智播客DotNet面試寶典_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

培訓(xùn)班常見問題(作者:張孝祥):1.你們會(huì)帶著我們做完整個(gè)完整的項(xiàng)目嗎?答:小的項(xiàng)目會(huì),大的項(xiàng)目則不也許,1.眾所周知,隨便拿出一個(gè)中檔大小的項(xiàng)目,也需要好多個(gè)純熟的開發(fā)人員開發(fā)好多個(gè)月才干勉強(qiáng)做得差不多,培訓(xùn)期間沒有這么多時(shí)間,并且你還要先學(xué)會(huì)了很多技術(shù)后才干開始做項(xiàng)目。2.一個(gè)項(xiàng)目中的很多東西都是反復(fù)性的工作量的累積,技術(shù)方面都大同小異。做一個(gè)項(xiàng)目就好比蓋一座樓房,只要告訴你整個(gè)樓房的整體結(jié)構(gòu),然后帶著你蓋上一間兩間房子,其他剩下的幾百間房子,老師想繼續(xù)蓋給你看,或者讓你自己蓋剩下的房間,你肯定也不樂意吧。以后有的是練手的機(jī)會(huì),拿著人家發(fā)給你的工資,你再去做這些反復(fù)性的工作也不遲,豈不是更好!2.業(yè)務(wù)重要?還是編碼實(shí)戰(zhàn)更重要?答:1.對(duì)軟件公司來說,兩者都很重要,有的項(xiàng)目是業(yè)務(wù)為重心,有的則是以技術(shù)作為核心;以業(yè)務(wù)為重心的項(xiàng)目與做鞋差不多,沒有多大技術(shù)含量和壁壘,只有積累了一定的經(jīng)驗(yàn),誰都可以做,利潤很薄,例如大多數(shù)管理系統(tǒng),靠的是人海戰(zhàn)術(shù)和時(shí)間糾纏;以技術(shù)為核心的項(xiàng)目則很有技術(shù)壁壘,不是誰都能做的,利潤率很高,例如,360殺毒軟件、baidu,qq,迅雷下載,大型bbs項(xiàng)目和淘寶這樣的電子商務(wù)網(wǎng)站。2.對(duì)程序員來說,編碼實(shí)戰(zhàn)更重要,業(yè)務(wù)則不算什么!程序員和軟件公司的工作就是要把用戶的需求和業(yè)務(wù)變成代碼,即為人作嫁,一開始,需求和業(yè)務(wù)都在用戶那里,用戶最懂業(yè)務(wù),你不用了解業(yè)務(wù),你的任務(wù)就是了解用戶的業(yè)務(wù)后編寫代碼,在開始做項(xiàng)目前,用戶會(huì)把業(yè)務(wù)告訴給你的。一個(gè)軟件公司歷來都不是只做自己熟悉業(yè)務(wù)的項(xiàng)目,而是來了業(yè)務(wù)不熟悉的項(xiàng)目機(jī)會(huì),肯定也會(huì)沖上去做,軟件公司通常都是在做自己以前沒做過的項(xiàng)目,即做以前不了解業(yè)務(wù)的項(xiàng)目,只有項(xiàng)目做完了才完全熟悉了業(yè)務(wù),這才叫做項(xiàng)目,否則就成了賣產(chǎn)品了,所以,軟件工程里說的需求調(diào)研和理解業(yè)務(wù)的過程,也是在從側(cè)面說明,程序員是在接到項(xiàng)目之后才開始了解其業(yè)務(wù)的,而在此之前,對(duì)業(yè)務(wù)可以是完全不懂的。3.是培訓(xùn)內(nèi)容和信息量大好?還是培訓(xùn)內(nèi)容少而精的好?答:內(nèi)容和信息量大培訓(xùn)課程體系,對(duì)大多人來說是更合適的。程序員做的工作總是在變化的,沒有一成不變的工作,為了適應(yīng)這種變化,你的知識(shí)面必須很廣泛。假如你學(xué)的知識(shí)內(nèi)容很少,即使你把這些內(nèi)容練的滾瓜爛熟了,除非你出去找的一份工作正好就是你以前練習(xí)的那些東西,這時(shí)候會(huì)讓人感覺你比誰都厲害,但這種千載難逢的好事怎么就被你碰上了呢?軟件開發(fā)畢竟不同于刷盤子,不是在反復(fù)干一件事情。軟件開發(fā)的工作總是要面臨不同的需求和問題,假如培訓(xùn)課程的內(nèi)容和信息量很大,即使由于時(shí)間關(guān)系,你暫時(shí)沒有完全消化和純熟這么多內(nèi)容,但是,你在工作中不管碰到什么新問題,都有那么一點(diǎn)點(diǎn)印象,知道大約的解決辦法和思緒,你就可以慢慢地通過查閱資料和最終解決這個(gè)問題,軟件開發(fā)的工作本來就是這么一種現(xiàn)狀,假如你學(xué)的知識(shí)量很少,一旦碰到了新問題,你完全就沒有了思緒,完全無從下手,這是何等痛苦,只有灰溜溜走人的份了吧。4.我們培養(yǎng)的不是IT蟻?zhàn)搴停桑悦窆は瓤纯碔T蟻?zhàn)搴虸T民工的悲慘命運(yùn)吧!()搜素程序員的悲哀,尚有更多辛酸的故事,但是,我并不同情他們,我只是說他們自己無能!程序員這個(gè)職業(yè)能發(fā)明出許數(shù)年輕的富翁,不靠父母不靠天,尚有那個(gè)職業(yè)這么有機(jī)會(huì)和誘惑呢。但是,程序員毀壞身體是真,可是,不讓你做程序員,你去打游戲,聊QQ不也照樣壞身體嗎?.net不只是有ASP.net+SQLServer這套,我們不培養(yǎng)IT蟻?zhàn)?,假如你不想?yún)挓┸浖_發(fā),那就不能只學(xué)ASP.net+SQLServer,這個(gè)沒有太多技術(shù)含量的單一純熟工種。別的培訓(xùn)機(jī)構(gòu)培養(yǎng)的是技術(shù)單一的純熟技工,傳智播客培養(yǎng)的是具有很強(qiáng)學(xué)習(xí)和解決問題能力的技術(shù)高手和未來技術(shù)經(jīng)理。很多工廠說,清華畢業(yè)的學(xué)生剛進(jìn)工廠時(shí)的動(dòng)手操作不如技校畢業(yè)的學(xué)生純熟,但過一段時(shí)間后,清華學(xué)生則能解決工廠生成過程出現(xiàn)中的各種新問題和弊端,甚至能提出創(chuàng)新和發(fā)明,后勁十足,由于清華培養(yǎng)的就不是一個(gè)單一工種的純熟工人,而是知識(shí)全面和具有創(chuàng)新能力的高級(jí)工程師。別的機(jī)構(gòu)和傳智播客培養(yǎng)出來的學(xué)生差別好比如此。這套面試題重要目的是幫助那些還沒有.Net軟件開發(fā)實(shí)際工作經(jīng)驗(yàn),而正在努力尋找.Net軟件開發(fā)工作的朋友在筆試時(shí)更好地贏得筆試和面試。由于這套面試題涉及的范圍很泛,很廣,很雜,大家不也許一天兩天就看完和學(xué)完這套面試寶典,即使你已經(jīng)學(xué)過了有關(guān)的技術(shù),那么至少也需要一個(gè)月的時(shí)間才干消化和掌握這套面試寶典,所以,大家應(yīng)當(dāng)早作準(zhǔn)備,從拿到這套面試寶典之日起,就要堅(jiān)持在天天閑暇之余學(xué)習(xí)其中幾道題目,日積月累,等到出去面試時(shí),一切都水到渠成,面試時(shí)就自然會(huì)游刃有余了?;卮饐栴}的思緒:先正面敘述一些基本的核心知識(shí),然后描述一些特殊的東西,最后再來一些錦上添花的東西。要注意有些不是錦上添花,而是畫蛇添足的東西,不要隨便寫上。把答題像寫書同樣寫。我要回答一個(gè)新技術(shù)的問題大約思緒和環(huán)節(jié)是:我們想干什么,干這個(gè)碰到了什么問題,現(xiàn)在用什么方式來解決。其實(shí)我們講課也是這樣一個(gè)思緒。例如,講ajax時(shí),我們希望不改變本來的整個(gè)網(wǎng)頁,而只是改變網(wǎng)頁中的局部內(nèi)容,例如,用戶名校驗(yàn),級(jí)聯(lián)下拉列表,下拉樹狀菜單。用傳統(tǒng)方式,就是瀏覽器自己直接向服務(wù)器發(fā)請(qǐng)求,服務(wù)器返回新頁面會(huì)蓋掉老頁面,這樣就不流暢了。答題時(shí),先答是什么,再答有什么作用和要注意什么(這部分最重要,展現(xiàn)自己的心得)答案的段落分別,層次分明,條理清楚都非常重要,從這些表面的東西也可以看出一個(gè)人的習(xí)慣、辦事風(fēng)格、條理等。要講你做出答案的思緒過程,或者說你記住答案的思想都寫下來。把答題想著是辯論賽。答題就是給別人講道理、擺事實(shí)。答題不局限于什么格式和形式,就是要將自己的學(xué)識(shí)展現(xiàn)出來!別由于人家題目本來就模棱兩可,你就心里膽怯和沒底氣了,不敢回答了。你要大膽地指出對(duì)方題目很模糊和你的觀點(diǎn),不要把面試官想得有多高,其實(shí)他和你就是差不多的,你想想,假如他把你招進(jìn)去了,你們以后就是同事了,可不是差不多的嗎?關(guān)于就業(yè)薪水,假如你是應(yīng)屆生,那不能要高工資,要拿高工資,就去中關(guān)村!少數(shù)人基礎(chǔ)的確很好,在校期間的確又做過一些項(xiàng)目,那仍然是可以要到相對(duì)高的工資的。初級(jí)程序員薪水:2023-4500中級(jí)程序員薪水:4000-7000高級(jí)程序員薪水:7000以上公司招聘程序員更看重的要用到的編碼技術(shù)、而不是那些業(yè)務(wù)不太相關(guān)的所謂項(xiàng)目經(jīng)歷:1.公司想招什么樣的人2.公司面試會(huì)問什么,.3.簡歷怎么寫4如何達(dá)成簡歷上的標(biāo)準(zhǔn)(培訓(xùn)中心教項(xiàng)目的目的)對(duì)于一些公司接到了一些項(xiàng)目,想招聘一些初中級(jí)的程序員過來幫助寫代碼,完畢這個(gè)項(xiàng)目,你更看重的是他的專業(yè)技術(shù)功底,還是以前做過幾個(gè)項(xiàng)目的經(jīng)歷呢?我們先排除掉那些編碼技術(shù)功底好,又正好做過相似項(xiàng)目的情況,事實(shí)上,這種魚和熊掌兼得的情況并不常見。其實(shí)公司很清楚,只要招聘進(jìn)來的人技術(shù)真的很明白,那他什么項(xiàng)目都可以做出來,公司招人不是讓你去反復(fù)做你以前的項(xiàng)目,而是做一個(gè)新項(xiàng)目,業(yè)務(wù)方面,你只要進(jìn)了項(xiàng)目團(tuán)隊(duì),自然就能掌握。所以,大多數(shù)招聘單位在招聘那些編碼級(jí)別的程序員時(shí)也沒指望能招聘到做過類似項(xiàng)目的人,也不會(huì)刻意去找做過類似項(xiàng)目的人,用人單位也不是想把你招進(jìn),然后把你以前做過的項(xiàng)目重做一遍,所以,用人單位更看重招進(jìn)來的人對(duì)要用到的編碼技術(shù)的功底到底如何,技術(shù)扎實(shí)不扎實(shí),項(xiàng)目則只要跟著開發(fā)團(tuán)隊(duì)走,自然就沒問題。除非是一些非常專業(yè)的行業(yè),要招聘特別高級(jí)的開發(fā)人員和系統(tǒng)分析師,招聘單位才特別注重他的項(xiàng)目經(jīng)驗(yàn)和行業(yè)經(jīng)驗(yàn),要去找到行業(yè)高手,公司才關(guān)心項(xiàng)目和與你聊項(xiàng)目的細(xì)節(jié),這樣的人通常都不是通過常規(guī)招聘渠道去招聘進(jìn)來的,而是通過各種手段挖過來的,這情況不再我今天要討論的范圍中。技術(shù)學(xué)得明白不明白,人家?guī)讉€(gè)問題就把你的深淺問出來了,只要問一些具體的技術(shù)點(diǎn),就很容易看出你是真懂還是假懂,很容看出你的技術(shù)深度和實(shí)力,所以,技術(shù)是來不得半點(diǎn)虛假的,必須扎扎實(shí)實(shí)。由于項(xiàng)目的種類繁多,涉及到現(xiàn)實(shí)生活中的各行各業(yè),什么五花八門的業(yè)務(wù)都有,例如,酒店房間預(yù)定管理,公司車輛調(diào)度管理,學(xué)校課程教室管理,超市進(jìn)銷存管理,知識(shí)內(nèi)容管理,等等……成千上萬等等,但是,不管是什么項(xiàng)目,采用的無非都是我們學(xué)習(xí)的那些目前流行和常用的技術(shù)。技術(shù)好、經(jīng)驗(yàn)豐富,則項(xiàng)目做出來的效率高些,程序更穩(wěn)定和更容易維護(hù)些;技術(shù)差點(diǎn),碰碰磕磕最后也能把項(xiàng)目做出來,無非是做的周期長點(diǎn)、返工的次數(shù)多點(diǎn),程序代碼寫得差些,用的技術(shù)笨拙點(diǎn)。假如一個(gè)人不是完完全全做過某個(gè)項(xiàng)目,他是不太關(guān)心該項(xiàng)目的業(yè)務(wù)的,對(duì)其中的一些具體細(xì)節(jié)更是一竅不知,(假如我招你來做圖書管理,你項(xiàng)目經(jīng)歷說你做過汽車調(diào)度,那我能問你汽車調(diào)度具體怎么回事嗎?不會(huì),所以,你很容易蒙混過去的)而一個(gè)程序員的整個(gè)職業(yè)生涯中能實(shí)實(shí)在在和完完整整做出來的項(xiàng)目沒幾個(gè),更別說在多個(gè)不同行業(yè)的項(xiàng)目了,有的程序員更是一輩子都只是在做某一個(gè)行業(yè)的項(xiàng)目,結(jié)果他就成了這個(gè)行業(yè)的專家(專門干一件事的家伙)。所以,技術(shù)面試官通常沒正好親身經(jīng)歷過你簡歷寫的那些項(xiàng)目,他不也許去問你寫的那些項(xiàng)目的具體細(xì)節(jié),而是只能泛泛地問你這個(gè)項(xiàng)目是多少人做的,做了多長時(shí)間,開發(fā)的過程,你在做項(xiàng)目的過程中有什么心得和收獲,用的什么技術(shù)等面上的問題,所以,簡歷上的項(xiàng)目經(jīng)歷可以具有很多水分,很容易作假,技術(shù)面試官也無法在項(xiàng)目上甄別你的真?zhèn)?。簡歷該怎么寫:精通那些技術(shù),有一些什么項(xiàng)目經(jīng)歷教項(xiàng)目是為了鞏固和靈活整合運(yùn)用技術(shù),增強(qiáng)學(xué)習(xí)的趣味性,熟悉做項(xiàng)目的流程,或得一些專業(yè)課程中無法獲得的特有項(xiàng)目經(jīng)驗(yàn),增強(qiáng)自己面試的信心。講的項(xiàng)目應(yīng)當(dāng)真實(shí)可靠才有價(jià)值,否則,表面上是項(xiàng)目,事實(shí)上還是知識(shí)點(diǎn)的整合,對(duì)鞏固技術(shù)點(diǎn)和增強(qiáng)學(xué)習(xí)的趣味性,但無法獲得實(shí)際的項(xiàng)目經(jīng)驗(yàn)。(項(xiàng)目重要是增長你經(jīng)驗(yàn)的可信度,獲得更多面試機(jī)會(huì),真正能不能找到工作,找到好工作,重要看你鍵盤上的功夫了)建議大家盡量開自己的blog,堅(jiān)持天天寫技術(shù)blog。在簡歷上寫上自己的blog地址,可以多轉(zhuǎn)載一些技術(shù)文章。1.如何過簡歷關(guān)?善意的謊言我先講解幾個(gè)軟件求職相關(guān)的真實(shí)故事,以幫助大家了解大多數(shù)軟件開發(fā)公司是如何賽選簡歷和錄用新員工的。1.傳智播客學(xué)員A是大四在讀的應(yīng)屆畢業(yè)生,他自信技術(shù)學(xué)得很不錯(cuò),實(shí)質(zhì)上的確也達(dá)成用人單位的標(biāo)準(zhǔn),他不樂意編寫兩年工作經(jīng)驗(yàn)的虛假簡歷,希望憑借自己的真實(shí)情況去面對(duì)求職,投遞了很多份簡歷,都沒有回應(yīng);而他周邊的很多相似背景的學(xué)員由于使用了假簡歷,都不久找到了薪水4.5k/月左右的工作,最后萬不得已,他修改了自己的簡歷,增長了一些水分,以兩年工作經(jīng)驗(yàn)的身份去投遞簡歷,結(jié)果就不久找到了滿意的工作。2.一個(gè)穿著和氣質(zhì)給人的印象都很不錯(cuò)的女生征詢時(shí),問:“假如在傳智播客學(xué)完了,能找到工作嗎?”,我問了她一些基本情況后,得知她是鄭州航空工業(yè)管理學(xué)院本科畢業(yè),并且畢業(yè)時(shí)間已有兩年,談話中感覺很有工作經(jīng)驗(yàn),英語也不錯(cuò),所以,我斬釘截鐵地告訴她:“她學(xué)完后絕對(duì)能找到一份滿意的工作”,并說出了一些因素:(1)她自身的談吐氣質(zhì)就決定了她找工作沒問題,應(yīng)聘工作除了規(guī)定有那些必需的技能外,關(guān)鍵一點(diǎn)還要看這個(gè)人的性格和素養(yǎng),按她的條件,假如她要找軟件開發(fā)方面的工作,只需要把技術(shù)補(bǔ)上就可以了,這一點(diǎn)在傳智播客學(xué)習(xí)是很容易補(bǔ)上的;(2)要想找到好工作,除了掌握必需的技術(shù)外,通常都需要編寫兩年工作經(jīng)驗(yàn)的簡歷,她的畢業(yè)是證的確兩年前的,編造兩年軟件開發(fā)的工作經(jīng)驗(yàn)更容易,至少不用專門去做假的畢業(yè)證了。她聽完后,很贊同我的觀念,說她現(xiàn)在就在一家軟件公司做人力資源,負(fù)責(zé)挑選應(yīng)聘者的簡歷,按領(lǐng)導(dǎo)的吩咐:“凡是工作經(jīng)驗(yàn)低于兩年的簡歷直接刪除到垃圾桶”,可見,假如你是以社會(huì)招聘的身份應(yīng)聘的,那么你的簡歷一方面到達(dá)了類似這個(gè)女生的人力資源之手,即使你的技術(shù)再厲害,假如你的工作經(jīng)驗(yàn)一欄上寫得低于了兩年,那簡歷就永無露臉之日了,何談后來的筆試和面試呢?3.與傳智播客同一樓的一個(gè)軟件開發(fā)單位,由于項(xiàng)目經(jīng)理讀過傳智播客老師們的書籍和看過傳智播客的視頻,所以他們公司想到了從傳智播客學(xué)員中招聘開發(fā)人員,提出薪水在2800元左后,我們公司老師對(duì)他們誰,2800元,我們學(xué)員肯定不會(huì)去!他們公司說對(duì)于沒有實(shí)際經(jīng)驗(yàn)的新手開出2800元的薪水已經(jīng)很不錯(cuò)了,我們老師說,傳智播客學(xué)員通過簡歷包裝都能找到平均4500元的工資,樓下公司說假簡歷他們一聊就能聊出來,沒工作經(jīng)驗(yàn)的人是騙不住他們的,我們的老師當(dāng)時(shí)就無語了,…,由于就在前幾天,我們就有一個(gè)學(xué)員成功潛伏進(jìn)了他們公司,并且工資是4500元,但我們老師不能當(dāng)他們的面來說這事,就讓他們一直蒙在鼓里還很自信吧!4.前面談到簡歷上的工作經(jīng)驗(yàn)很重要,可是大多數(shù)要找工作的同學(xué)往往是沒有工作經(jīng)驗(yàn)的,所以,只能在簡歷上加點(diǎn)水分。但是,只要你將簡歷上寫成了兩年以上的工作經(jīng)驗(yàn),是不是一定就能得到筆試和面試的機(jī)會(huì)呢?寫兩年工作經(jīng)驗(yàn)只是有效簡歷的開始,離簡歷被用人單位相中尚有一段差距。一個(gè)好的畢業(yè)學(xué)校、優(yōu)秀的英語水平、中共黨員的政治面貌、某省或直轄市的優(yōu)秀畢業(yè)生、奧林匹克競賽獲幾等獎(jiǎng)等榮耀都會(huì)給用人單位一個(gè)很好的印象,假如你有這些榮耀,一定要在簡歷的基本信息部分寫清楚。但是,很多人是沒有這些榮耀的,那么只能平平淡淡列出自己的一些基本信息,這也沒有很大的關(guān)系,頂多就是自己的簡歷不能脫穎而出。假如你沒有上過大學(xué),學(xué)歷一欄怎么著也不能寫為高中,起碼也要寫個(gè)大專或以上,畢業(yè)院校編個(gè)二線城市的不知名的小學(xué)院,假如你不樂意去做假證,等到別人面試你時(shí),再說“閑棄以前上的學(xué)校不好,由于對(duì)編程太感愛好,就輟學(xué)了!”技術(shù)類面試、筆試題匯總(整理者:楊中科,部分內(nèi)容從互聯(lián)網(wǎng)中整理而來)注:標(biāo)明*的問題屬于選擇性掌握的內(nèi)容,能掌握更好,沒掌握也沒關(guān)系。下面的參考解答只是幫助大家理解,不用背,面試題、筆試題千變?nèi)f化,不要夢(mèng)想著把題覆蓋了,下面的題是供大家查漏補(bǔ)缺用的,真正的把這些題搞懂了,才干“以不變應(yīng)萬變”?;卮饐栴}的時(shí)候能聯(lián)系做過項(xiàng)目的例子是最佳的,有的問題后面我已經(jīng)補(bǔ)充聯(lián)系到項(xiàng)目中的相應(yīng)的案例了。1、簡述private、protected、public、internal修飾符的訪問權(quán)限。private:私有成員,在類的內(nèi)部才可以訪問。protected:保護(hù)成員,該類內(nèi)部和繼承類中可以訪問。public:公共成員,完全公開,沒有訪問限制。internal:當(dāng)前程序集內(nèi)可以訪問。2、ADO.NET中的五個(gè)重要對(duì)象Connection:重要是啟動(dòng)程序和數(shù)據(jù)庫之間的連接。沒有運(yùn)用連接對(duì)象將數(shù)據(jù)庫打開,是無法從數(shù)據(jù)庫中取得數(shù)據(jù)的。Close和Dispose的區(qū)別,Close以后還可以O(shè)pen,Dispose以后則不能再用。Command:重要可以用來對(duì)數(shù)據(jù)庫發(fā)出一些指令,例如可以對(duì)數(shù)據(jù)庫下達(dá)查詢、新增、修改、刪除數(shù)據(jù)等指令,以及調(diào)用存在數(shù)據(jù)庫中的存儲(chǔ)過程等。這個(gè)對(duì)象是架構(gòu)在Connection對(duì)象上,也就是Command對(duì)象是透過連接到數(shù)據(jù)源。DataAdapter:重要是在數(shù)據(jù)源以及DataSet之間執(zhí)行數(shù)據(jù)傳輸?shù)墓ぷ?,它可以透過Command對(duì)象下達(dá)命令后,并將取得的數(shù)據(jù)放入DataSet對(duì)象中。這個(gè)對(duì)象是架構(gòu)在Command對(duì)象上,并提供了許多配合DataSet使用的功能。DataSet:這個(gè)對(duì)象可以視為一個(gè)暫存區(qū)(Cache),可以把從數(shù)據(jù)庫中所查詢到的數(shù)據(jù)保存起來,甚至可以將整個(gè)數(shù)據(jù)庫顯示出來,DataSet是放在內(nèi)存中的。DataSet的能力不只是可以儲(chǔ)存多個(gè)Table而已,還可以透過DataAdapter對(duì)象取得一些例如主鍵等的數(shù)據(jù)表結(jié)構(gòu),并可以記錄數(shù)據(jù)表間的關(guān)聯(lián)。DataSet對(duì)象可以說是ADO.NET中重量級(jí)的對(duì)象,這個(gè)對(duì)象架構(gòu)在DataAdapter對(duì)象上,自身不具有和數(shù)據(jù)源溝通的能力;也就是說我們是將DataAdapter對(duì)象當(dāng)做DataSet對(duì)象以及數(shù)據(jù)源間傳輸數(shù)據(jù)的橋梁。DataSet包含若干DataTable、DataTableTable包含若干DataRow。DataReader:當(dāng)我們只需要循序的讀取數(shù)據(jù)而不需要其它操作時(shí),可以使用DataReader對(duì)象。Dat(yī)aReader?qū)ο笾皇且淮我还P向下循序的讀取數(shù)據(jù)源中的數(shù)據(jù),這些數(shù)據(jù)是存在數(shù)據(jù)庫服務(wù)器中的,而不是一次性加載到程序的內(nèi)存中的,只能(通過游標(biāo))讀取當(dāng)前行的數(shù)據(jù),并且這些數(shù)據(jù)是只讀的,并不允許作其它的操作。由于DataReader在讀取數(shù)據(jù)的時(shí)候限制了每次只讀取一筆,并且只能只讀,所以使用起來不僅節(jié)省資源并且效率很好。使用DataReader對(duì)象除了效率較好之外,由于不用把數(shù)據(jù)所有傳回,故可以減少網(wǎng)絡(luò)的負(fù)載。ADO.NET使用Connection對(duì)象來連接數(shù)據(jù)庫,使用Command或DataAdapter?qū)ο髞韴?zhí)行SQL語句,并將執(zhí)行的結(jié)果返回給DataReader或DataAdapter,然后再使用取得的DataReader或DataAdapter對(duì)象操作數(shù)據(jù)結(jié)果。3、列舉ASP.NET頁面之間傳遞值的幾種方式。1.使用QueryString,如....?id=1;response.Redirect()2.使用Session變量3.使用Server.Transfer4.Cookie傳值5.Application傳值6.PreviosPageServer.Transfer和Response.Redirect的區(qū)別:Server.Transfer是服務(wù)器內(nèi)部的轉(zhuǎn)接,瀏覽器不知曉;Response.Redirect是有瀏覽器參與的,所以在地址欄中可以看到地址的變化。4、C#中的委托是什么?事件是不是一種委托?事件和委托的關(guān)系。委托可以把一個(gè)方法作為參數(shù)代入另一個(gè)方法。委托可以理解為指向一個(gè)函數(shù)的指針。委托和事件沒有可比性,由于委托是類型,事件是對(duì)象,下面說的是委托的對(duì)象(用委托方式實(shí)現(xiàn)的事件)和(標(biāo)準(zhǔn)的event方式實(shí)現(xiàn))事件的區(qū)別。事件的內(nèi)部是用委托實(shí)現(xiàn)的。由于對(duì)于事件來講,外部只能“注冊(cè)自己+=、注銷自己-=”,外界不可以注銷其他的注冊(cè)者,外界不可以積極觸發(fā)事件,因此假如用Delegate就沒法進(jìn)行上面的控制,因此誕生了事件這種語法。事件是用來閹割委托實(shí)例的,類比用一個(gè)自定義類閹割List。事件只能add、remove自己,不能賦值。事件只能+=、-=,不能=。加分的補(bǔ)充回答:事件內(nèi)部就是一個(gè)private的委托和add、remove兩個(gè)方法。面試聊:用Reflector查看.Net的類的內(nèi)部實(shí)現(xiàn),解決問題。5、override與重載(overload)的區(qū)別重載是方法的名稱相同。參數(shù)或參數(shù)類型不同,進(jìn)行多次重載以適應(yīng)不同的需要。重載(overload)是面向過程的概念。Override是進(jìn)行基類中函數(shù)的重寫。Override是面向?qū)ο蟮母拍?、C#中索引器是否只能根據(jù)數(shù)字進(jìn)行索引?是否允許多個(gè)索引器參數(shù)?參數(shù)的個(gè)數(shù)和類型都是任意的。加分的補(bǔ)充回答:用reflector反編譯可以看出,索引器的內(nèi)部本質(zhì)上就是set_item、get_item方法。加分的補(bǔ)充回答:回答傳智播客.net培訓(xùn)中講解設(shè)計(jì)模式中開發(fā)的SettingsProvider就是用的string類型的參數(shù)名做索引器參數(shù)。7、屬性和public字段的區(qū)別是什么?調(diào)用set方法為一個(gè)屬性設(shè)值,然后用get方法讀取出來的值一定是set進(jìn)去的值嗎?屬性可以對(duì)設(shè)值、取值的過程進(jìn)行非法值控制,比如年齡嚴(yán)禁設(shè)值負(fù)數(shù),而字段則不能進(jìn)行這樣的設(shè)立。雖然一般情況下get讀取的值就是set設(shè)立的值,但是可以讓get讀取的值不是set設(shè)立的值的,極端的例子。PublicAge{get{return100;}set{}}。加分的補(bǔ)充回答:用reflector反編譯可以看出,屬性內(nèi)部本質(zhì)上就是set_***、get_***方法,具體參考傳智播客.net培訓(xùn)視頻中串講.net基礎(chǔ)的部分。classPerson{publicintAge{get{return3;}set{}}}Personp1=newPerson();p1.Age=30;p1.Age++;Console.Write(p1.Age);//輸出38、三層架構(gòu)通常意義上的三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。區(qū)分層次的目的即為了“高內(nèi)聚,低耦合”的思想。表現(xiàn)層(UI):通俗講就是展現(xiàn)給用戶的界面,即用戶在使用一個(gè)系統(tǒng)的時(shí)候的所見所得。業(yè)務(wù)邏輯層(BLL):針對(duì)具體問題的操作,也可以說是對(duì)數(shù)據(jù)層的操作,對(duì)數(shù)據(jù)業(yè)務(wù)邏輯解決。數(shù)據(jù)訪問層(DAL):該層所做事務(wù)直接操作數(shù)據(jù)庫,針對(duì)數(shù)據(jù)的增添、刪除、修改、更新、查找等每層之間是一種垂直的關(guān)系。三層結(jié)構(gòu)是N層結(jié)構(gòu)的一種,一般來說,層次之間是向下依賴的,下層代碼未擬定其接口(契約)前,上層代碼是無法開發(fā)的,下層代碼接口(契約)的變化將使上層的代碼一起變化。優(yōu)點(diǎn):分工明確,條理清楚,易于調(diào)試,并且具有可擴(kuò)展性。缺陷:增長成本。9、MVC模式(*)MVC(ModelViewController)模型-視圖-控制器aspx就是View,視圖;Model:DataSet、Reader、對(duì)象;Controller:cs代碼。MVC是典型的平行關(guān)系,沒有說誰在上誰在下的關(guān)系,模型負(fù)責(zé)業(yè)務(wù)領(lǐng)域的事情,視圖負(fù)責(zé)顯示的事情,控制器把數(shù)據(jù)讀取出來填充模型后把模型交給視圖去解決。而各種驗(yàn)證什么的應(yīng)當(dāng)是在模型里解決了。它強(qiáng)制性的使應(yīng)用程序的輸入、解決和輸出分開。MVC最大的好處是將邏輯和頁面分離。10、什么是裝箱(boxing)和拆箱(unboxing)?(*)裝箱:從值類型接口轉(zhuǎn)換到引用類型。拆箱:從引用類型轉(zhuǎn)換到值類型。objectobj=null;//引用類型obj=1;//裝箱,boxing。把值類型包裝為引用類型。inti1=(int)obj;//拆箱。unboxing11、什么叫應(yīng)用程序域(AppDomain)(*)一種邊界,它由公共語言運(yùn)營庫圍繞同一應(yīng)用程序范圍內(nèi)創(chuàng)建的對(duì)象建立(即,從應(yīng)用程序入口點(diǎn)開始,沿著對(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)用程序域。應(yīng)用程序域可以理解為一種輕量級(jí)進(jìn)程。起到安全的作用。占用資源小。12、CTS、CLS、CLR分別作何解釋(*)CTS:CommonTypeSystem通用系統(tǒng)類型。Int32、Int16→int、String→string、Boolean→boolCLS:CommonLanguageSpecification通用語言規(guī)范。不同語言語法的不同。CLR:CommonLanguageRuntime公共語言運(yùn)營時(shí),就是.Net提供的那些類。13、在dotnet中類(class)與結(jié)構(gòu)(struct)的異同?Class可以被實(shí)例化,屬于引用類型,是分派在內(nèi)存的堆上的。類是引用傳遞的。Struct屬于值類型,是分派在內(nèi)存的棧上的。結(jié)構(gòu)體是復(fù)制傳遞的。加分的回答:Int32、Boolean等都屬于結(jié)構(gòu)體。14、堆和棧的區(qū)別?棧是編譯期間就分派好的內(nèi)存空間,因此你的代碼中必須就棧的大小有明確的定義;局部值類型變量、值類型參數(shù)等都在棧內(nèi)存中。堆是程序運(yùn)營期間動(dòng)態(tài)分派的內(nèi)存空間,你可以根據(jù)程序的運(yùn)營情況擬定要分派的堆內(nèi)存的大小。15、能用foreach遍歷訪問的對(duì)象的規(guī)定需要實(shí)現(xiàn)IEnumerable接口或聲明GetEnumerator方法的類型。16、GC是什么?為什么要有GC?GC是垃圾收集器。程序員不用緊張內(nèi)存管理,由于垃圾收集器會(huì)自動(dòng)進(jìn)行管理。GC只能解決托管內(nèi)存資源的釋放,對(duì)于非托管資源則不能使用GC進(jìn)行回收,必須由程序員手工回收,一個(gè)例子就是FileStream或者SqlConnection需要程序員調(diào)用Dispose進(jìn)行資源的回收。要請(qǐng)求垃圾收集,可以調(diào)用下面的方法:GC.Collection()一般不需要手動(dòng)調(diào)用GC.Collection()。加分的回答:有一次用OLEAutomation的方式操作Excel的時(shí)候,Excel經(jīng)常不能正常退出,在MSDN網(wǎng)站上找到官方解答說要調(diào)用一下GC.Collection(),至于為什么這樣就可以也沒找到答案。17、Strings=newString("xyz");創(chuàng)建了幾個(gè)StringObject?兩個(gè)對(duì)象,一個(gè)是“xyx”,一個(gè)是指向“xyx”的引用對(duì)象。18、值類型和引用類型的區(qū)別?1.將一個(gè)值類型變量賦給另一個(gè)值類型變量時(shí),將復(fù)制包含的值。引用類型變量的賦值只復(fù)制對(duì)對(duì)象的引用,而不復(fù)制對(duì)象自身。2.值類型不也許派生出新的類型:所有的值類型均隱式派生自System.ValueType。但與引用類型相同的是,結(jié)構(gòu)也可以實(shí)現(xiàn)接口。3.值類型不也許包含null值:然而,可空類型功能允許將null賦給值類型。4.每種值類型均有一個(gè)隱式的默認(rèn)構(gòu)造函數(shù)來初始化該類型的默認(rèn)值。19、C#中的接口和類有什么異同。不同點(diǎn):不能直接實(shí)例化接口。接口不包含方法的實(shí)現(xiàn)。接口可以多繼承,類只能單繼承。類定義可在不同的源文獻(xiàn)之間進(jìn)行拆分。相同點(diǎn):接口、類和結(jié)構(gòu)都可以從多個(gè)接口繼承。接口類似于抽象基類:繼承接口的任何非抽象類型都必須實(shí)現(xiàn)接口的所有成員。接口和類都可以包含事件、索引器、方法和屬性。20、abstractclass和interface有什么區(qū)別?相同點(diǎn):都不能被直接實(shí)例化,都可以通過繼承實(shí)現(xiàn)其抽象方法。不同點(diǎn):接口支持多繼承;抽象類不能實(shí)現(xiàn)多繼承。接口只能定義行為;抽象類既可以定義行為,還也許提供實(shí)現(xiàn)。接口可以用于支持回調(diào)(CallBack);抽象類不能實(shí)現(xiàn)回調(diào),由于繼承不支持。接口只包含方法(Method)、屬性(Property)、索引器(Index)、事件(Event)的署名,但不能定義字段和包含實(shí)現(xiàn)的方法;抽象類可以定義字段、屬性、包具有實(shí)現(xiàn)的方法。接口可以作用于值類型(Struct)和引用類型(Class);抽象類只能作用于引用類型。例如,Struct就可以繼承接口,而不能繼承類。加分的補(bǔ)充回答:講設(shè)計(jì)模式的時(shí)候SettingsProvider的例子。21、是否可以繼承String類?String類是sealed類故不可以繼承。22、try{}里有一個(gè)return語句,那么緊跟在這個(gè)try后的finally{}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行?會(huì)執(zhí)行,在return前執(zhí)行。加分的補(bǔ)充回答(也助記):讀取數(shù)據(jù)庫中數(shù)據(jù)的條數(shù)的程序publicintQueryCount(){…..try{returncmd.ExecuteScalar();}finally{cmd.Dispose();}}假如C#設(shè)計(jì)的是先執(zhí)行cmd.Dispose()再執(zhí)行return就會(huì)出現(xiàn)return執(zhí)行失敗了,由于cmd已經(jīng)Dispose了。23、new關(guān)鍵字用法(*)new運(yùn)算符用于創(chuàng)建對(duì)象和調(diào)用構(gòu)造函數(shù)。new修飾符用于向基類成員隱藏繼承成員。new約束用于在泛型聲明中約束也許用作類型參數(shù)的參數(shù)的類型。24、如何把一個(gè)Array復(fù)制到ArrayList里(*)實(shí)現(xiàn)1string[]s={"111","22222"};ArrayListlist=newArrayList();list.AddRange(s);實(shí)現(xiàn)2string[]s={"111","22222"};ArrayListlist=newArrayList(s);25、描述線程與進(jìn)程的區(qū)別?(*)1.線程(Thread)與進(jìn)程(Process)兩者都定義了某種邊界,不同的是進(jìn)程定義的是應(yīng)用程序與應(yīng)用程序之間的邊界,不同的進(jìn)程之間不能共享代碼和數(shù)據(jù)空間,而線程定義的是代碼執(zhí)行堆棧和執(zhí)行上下文的邊界。2.一個(gè)進(jìn)程可以涉及若干個(gè)線程,同時(shí)創(chuàng)建多個(gè)線程來完畢某項(xiàng)任務(wù),便是多線程。而同一進(jìn)程中的不同線程共享代碼和數(shù)據(jù)空間。用一個(gè)比方來說,假如一個(gè)家庭代表一個(gè)進(jìn)程,在家庭內(nèi)部,各個(gè)成員就是線程,家庭中的每個(gè)成員都有義務(wù)對(duì)家庭的財(cái)富進(jìn)行積累,同時(shí)也有權(quán)利對(duì)家庭財(cái)富進(jìn)行消費(fèi),當(dāng)面對(duì)一個(gè)任務(wù)的時(shí)候,家庭也可以派出幾個(gè)成員來協(xié)同完畢,而家庭之外的人則沒有辦法直接消費(fèi)不屬于自己家庭的財(cái)產(chǎn)。加分的回答:舉例,傳智播客的.Net培訓(xùn)中用多線程(ThreadPool)實(shí)現(xiàn)網(wǎng)站蜘蛛的案例。26、什么是強(qiáng)類型,什么是弱類型?哪種更好些?為什么?

C#中inti=3;i="a";不可以JavaScript中vari=3;i="a";可以強(qiáng)類型是在編譯的時(shí)候就擬定類型的數(shù)據(jù),在執(zhí)行時(shí)類型不能更改,而弱類型在執(zhí)行的時(shí)候才會(huì)擬定類型。沒有好不好,兩者各有好處,強(qiáng)類型安全,由于它事先已經(jīng)擬定好了,并且效率高。弱類型更靈活,但是效率低,并且犯錯(cuò)概率高一般用于編譯型編程語言,如c++,java,c#,pascal等,弱類型相比而言不安全,在運(yùn)營的時(shí)候容易出現(xiàn)錯(cuò)誤,但它靈活,多用于解釋型編程語言,如javascript,vb等加分的補(bǔ)充回答:引用傳智播客.net培訓(xùn)呼喊中心項(xiàng)目中用強(qiáng)類型DataSet的例子,侃一通用強(qiáng)類型DataSet是多么方便。27、什么是反射?程序集包含模塊,而模塊又涉及類型,類型下有成員,反射就是管理程序集,模塊,類型的對(duì)象,它可以動(dòng)態(tài)的創(chuàng)建類型的實(shí)例,設(shè)立現(xiàn)有對(duì)象的類型或者獲取現(xiàn)有對(duì)象的類型,能調(diào)用類型的方法和訪問類型的字段屬性。它是在運(yùn)營時(shí)創(chuàng)建和使用類型實(shí)例加分的補(bǔ)充回答:聊用反射實(shí)現(xiàn)編輯器動(dòng)態(tài)插件和如鵬網(wǎng)項(xiàng)目中插件體系實(shí)現(xiàn)第三方支付和定期任務(wù)的案例。28、int、DateTime、string是否可認(rèn)為null?int、DateTime不能,由于其為Struct類型,而結(jié)構(gòu)屬于值類型,值類型不能為null,只有引用類型才干被賦值null。string可認(rèn)為null。29、using關(guān)鍵字有什么用?什么是IDisposable?using可以聲明namespace的引入,還可以實(shí)現(xiàn)非托管資源的釋放,實(shí)現(xiàn)了IDisposiable的類在using中創(chuàng)建,using結(jié)束后會(huì)自動(dòng)調(diào)用該對(duì)象的Dispose方法,釋放資源。加分的補(bǔ)充回答:using其實(shí)等價(jià)于try……finally,用起來更方便。int?→Nullable<int>30、Assembly.Load("foo.dll");這句話是否對(duì)的?(*)錯(cuò)誤,對(duì)的的應(yīng)當(dāng)是Assembly.Load("foo");或者Assembly.LoadFrom("foo.dll");31、XML與HTML的重要區(qū)別1.XML是區(qū)分大小寫字母的,HTML不區(qū)分。2.在HTML中,假如上下文清楚地顯示出段落或者列表鍵在何處結(jié)尾,那么你可以省略</p>或者</li>之類的結(jié)束標(biāo)記。在XML中,絕對(duì)不能省略掉結(jié)束標(biāo)記。HTML:<imgsrc="1.jpg"><br><br>XML:<imgsrc="1.jpg"></img><br/><br/>3.在XML中,擁有單個(gè)標(biāo)記而沒有匹配的結(jié)束標(biāo)記的元素必須用一個(gè)/字符作為結(jié)尾。這樣分析器就知道不用查找結(jié)束標(biāo)記了。4.在XML中,屬性值必須分裝在引號(hào)中。在HTML中,引號(hào)是可用可不用的。5.在HTML中,可以擁有不帶值的屬性名。在XML中,所有的屬性都必須帶有相應(yīng)的值。XML是用來存儲(chǔ)和傳輸數(shù)據(jù)的HTML是用來顯示數(shù)據(jù)的32、stringstr=null與stringstr=“”說明其中的區(qū)別。答:stringstr=null是不給他分派內(nèi)存空間,而stringstr=\"\"給它分派長度為空字符串的內(nèi)存空間。stringstr=null沒有string對(duì)象,stringstr=“”有一個(gè)字符串對(duì)象。33.寫出一條Sql語句:取出表A中第31到第40記錄(SQLServer,以自動(dòng)增長的ID作為主鍵,注意:ID也許不是連續(xù)的。答:解1:selecttop10*fromAwhereidnotin(selecttop30idfromA)解2:selecttop10*fromAwhereid>(selectmax(id)from(selecttop30idfromA)asA)解答3:ROW_NUMBER(推薦)34.面向?qū)ο蟮恼Z言具有________性、___(dá)______性、__(dá)__(dá)____(dá)性答:封裝、繼承、多態(tài)。不要背,腦子中要有聯(lián)想。35.在.Net中所有可序列化的類都被標(biāo)記為_____?答:[serializable]36.在.Net托管代碼中我們不用緊張內(nèi)存漏洞,這是由于有了______(dá)?答:GC。37、什么叫應(yīng)用程序域?什么是受管制的代碼?什么是托管代碼?什么是強(qiáng)類型系統(tǒng)?什么是裝箱和拆箱?什么是重載?CTS、CLS和CLR分別作何解釋?應(yīng)用程序域?yàn)榘踩?、可靠性、版本控制以及卸載程序集提供了隔離邊界。應(yīng)用程序域通常由運(yùn)營庫宿主創(chuàng)建,運(yùn)營庫宿主負(fù)責(zé)在運(yùn)營應(yīng)用程序之前引導(dǎo)公共語言運(yùn)營庫。應(yīng)用程序域提供了一個(gè)更安全、用途更廣的解決單元,公共語言運(yùn)營庫可使用該單元提供應(yīng)用程序之間的隔離。受管制的代碼:在.Net環(huán)境中運(yùn)營的任何代碼都是受管制的代碼(managedcode),.Net外部的代碼也運(yùn)營在windows上,這些代碼稱為未受管制的代碼(unmanagedcode)。使用基于公共語言運(yùn)營庫的語言編譯器開發(fā)的代碼稱為托管代碼;托管代碼具有許多優(yōu)點(diǎn),例如:跨語言集成、跨語言異常解決、增強(qiáng)的安全性、版本控制和部署支持、簡化的組件交互模型、調(diào)試和分析服務(wù)等。強(qiáng)類型語言是可以嚴(yán)禁任何違反類型系統(tǒng)的代碼的語言,或者說是可以捕獲所有違反類型系統(tǒng)的錯(cuò)誤的語言。我們說C++相對(duì)于C是強(qiáng)類型的,是由于C++嚴(yán)禁了一些C中的隱式轉(zhuǎn)換,比如將void*轉(zhuǎn)換為任意的指針類型。裝箱和拆箱使值類型可以被視為對(duì)象。對(duì)值類型裝箱將把該值類型打包到Object引用類型的一個(gè)實(shí)例中。這使得值類型可以存儲(chǔ)于垃圾回收堆中。拆箱將從對(duì)象中提取值類型。每個(gè)類型成員都有一個(gè)唯一的署名。方法署名由方法名稱和一個(gè)參數(shù)列表(方法的參數(shù)的順序和類型)組成。只要署名不同,就可以在一種類型內(nèi)定義具有相同名稱的多種方法。當(dāng)定義兩種或多種具有相同名稱的方法時(shí),就稱作重載。CTS通用類型系統(tǒng)(commontypesystem)一種擬定公共語言運(yùn)營庫如何定義、使用和管理類型的規(guī)范。CLR公共語言運(yùn)營庫.NETFramework提供了一個(gè)稱為公共語言運(yùn)營庫的運(yùn)營時(shí)環(huán)境,它運(yùn)營代碼并提供使開發(fā)過程更輕松的服務(wù)。CLS公共語言規(guī)范要和其他對(duì)象完全交互,而不管這些對(duì)象是以何種語言實(shí)現(xiàn)的,對(duì)象必須只向調(diào)用方公開那些它們必須與之互用的所有語言的通用功能。為此定義了公共語言規(guī)范(CLS),它是許多應(yīng)用程序所需的一套基本語言功能。38、什么是code-Behind技術(shù)。就是代碼隱藏,在ASP.NET中通過ASPX頁面指向CS文獻(xiàn)的方法實(shí)現(xiàn)顯示邏輯和解決邏輯的分離,這樣有助于web應(yīng)用程序的創(chuàng)建。比如分工,美工和編程的可以個(gè)干各的,不用再像以前asp那樣都代碼和html代碼混在一起,難以維護(hù)。39、接口是一種引用類型,在接口中可以聲明(

a),但不可以聲明公有的域或私有的成員變量。

a)方法、屬性、索引器和事件;

??

c)索引器和字段;

?

d)事件和字段;

?40.在ADO.NET中,對(duì)于Command對(duì)象的ExecuteNonQuery()方法和ExecuteReader()方法,下面敘述錯(cuò)誤的是(c)。

?

a)insert、update、delete等操作的Sql語句重要用ExecuteNonQuery()方法來執(zhí)行;

b)ExecuteNonQuery()方法返回執(zhí)行Sql語句所影響的行數(shù)。

?

c)Select操作的Sql語句只能由ExecuteReader()方法來執(zhí)行;

d)ExecuteReader()方法返回一個(gè)DataReder對(duì)象;

解答:ExecuteScalar→selectgetdate()。

41.下列關(guān)于C#中索引器理解對(duì)的的是(c

)

?

a)索引器的參數(shù)必須是兩個(gè)或兩個(gè)以上

b)索引器的參數(shù)類型必須是整數(shù)型

c)索引器沒有名字

d)以上皆非

42.要?jiǎng)?chuàng)建多文檔應(yīng)用程序,需要將窗體的(d

)屬性設(shè)為true。

?

a)DrawGrid;

?

b)ShowInTaskbar;

c)Enabled;

?

d)IsMdiContainer;

?43.假如設(shè)treeView1=new

TreeView(),則treeView1.Nodes.Add("根節(jié)點(diǎn)")返回的是一個(gè)

(a)類型的值。

?

a)TreeNode;

b)int;

c)string;

d)TreeView;

?44.下面關(guān)于XML的描述錯(cuò)誤的是(d)。

?

a)XML提供一種描述結(jié)構(gòu)化數(shù)據(jù)的方法;

b)XML

是一種簡樸、與平臺(tái)無關(guān)并被廣泛采用的標(biāo)準(zhǔn);

?

c)XML文檔可承載各種信息;

d)XML只是為了生成結(jié)構(gòu)化文檔;

?45、以下的C#代碼,試圖用來定義一個(gè)接口:

?

public

interface

IFile

{

?

int

A;

int

delFile()

A

3;

?

}

?

void

disFile();

?

}

關(guān)于以上的代碼,以下描述錯(cuò)誤的是(d

)。

a)以上的代碼中存在的錯(cuò)誤涉及:不能在接口中定義變量,所以int

A代碼行將出現(xiàn)錯(cuò)誤;

b)以上的代碼中存在的錯(cuò)誤涉及:接口方法delFile是不允許實(shí)現(xiàn)的,所以不能編寫具體的實(shí)現(xiàn)函數(shù);

c)代碼void

disFile();聲明無錯(cuò)誤,接口可以沒有返回值;

?

d)代碼void

disFile();應(yīng)當(dāng)編寫為void

disFile(){};

空和null不同樣。

46在ASP.NET中有Button控件myButton,要是單擊控件時(shí),導(dǎo)航到其他頁面,

對(duì)的的代碼為(

c)。

?

a)private

void

myButton_Click(object

sender,

System.EventArgs

e){Redirect(“”);}

b)private

void

myButton_Click(object

sender,

System.EventArgs

e){Request.Redirect(“”);}

?

c)private

void

myButton_Click(object

sender,

System.EventArgs

e){Reponse.Redirect(“”);}

?

d)private

void

myButton_Click(object

sender,

System.EventArgs

e){Request.Redirect(“”);return

true;}

47.聲明一個(gè)委托public

delegat(yī)e

int

myCallBack(int

x);

則用該委托產(chǎn)生的回調(diào)方法的原型應(yīng)當(dāng)是(b

)。

a)void

myCallBack(int

x)

b)int

receive(int

num)

;

?

c)string

receive(int

x)

d)不擬定的;

?48.StringBuilder和String的區(qū)別?答:String在進(jìn)行運(yùn)算時(shí)(如賦值、拼接等)會(huì)產(chǎn)生一個(gè)新的實(shí)例,而StringBuilder

則不會(huì)。所以在大量字符串拼接或頻繁對(duì)某一字符串進(jìn)行操作時(shí)最佳使用StringBuilder,不要使用String

假如要操作一個(gè)不斷增長的字符串,盡量不用String類,改用StringBuilder類。兩個(gè)類的工作原理不同:String類是一種傳統(tǒng)的修改字符串的方式,它的確可以完畢把一個(gè)字符串添加到另一個(gè)字符串上的工作沒錯(cuò),但是在.NET框架下,這個(gè)操作實(shí)在是劃不來。由于系統(tǒng)先是把兩個(gè)字符串寫入內(nèi)存,接著刪除本來的String對(duì)象,然后創(chuàng)建一個(gè)String對(duì)象,并讀取內(nèi)存中的數(shù)據(jù)賦給該對(duì)象。這一來二去的,耗了不少時(shí)間。而使用System.Text命名空間下面的StringBuilder類就不是這樣了,它提供的Append方法,可以在已有對(duì)象的原地進(jìn)行字符串的修改,簡樸并且直接。當(dāng)然,一般情況下覺察不到這兩者效率的差異,但假如你要對(duì)某個(gè)字符串進(jìn)行大量的添加操作,那么StringBuilder類所花費(fèi)的時(shí)間和String類簡直不是一個(gè)數(shù)量級(jí)的。

49、.請(qǐng)敘述屬性與索引器的區(qū)別。

(*)沒啥意義屬性

索引器

通過名稱標(biāo)記。

通過署名標(biāo)記。

通過簡樸名稱或成員訪問來訪問。

通過元素訪問來訪問。

可認(rèn)為靜態(tài)成員或?qū)嵗蓡T。

必須為實(shí)例成員。

屬性的

get

訪問器沒有參數(shù)。

索引器的

get

訪問器具有與索引器相同的形參表。

屬性的

set

訪問器包含隱式

value

參數(shù)。

除了

value

參數(shù)外,索引器的

set

訪問器還具有與索引器相同的形參表。

50.請(qǐng)敘述const與readonly的區(qū)別。(*)

const關(guān)鍵字用于修改字段或局部變量的聲明。它指定字段或局部變量的值不能被修改。常數(shù)聲明引入給定類型的一個(gè)或多個(gè)常數(shù)。

const數(shù)據(jù)成員的聲明式必須包含初值,且初值必須是一個(gè)常量表達(dá)式。由于它是在編譯時(shí)就需要完全評(píng)估。

const成員可以使用另一個(gè)const成員來初始化,前提是兩者之間沒有循環(huán)依賴。

readonly在運(yùn)營期評(píng)估賦值,使我們得以在保證“只讀訪問”的前提下,把object的初始化動(dòng)作推遲到運(yùn)營期進(jìn)行。

readonly關(guān)鍵字與const關(guān)鍵字不同:const字段只能在該字段的聲明中初始化。readonly字段可以在聲明或構(gòu)造函數(shù)中初始化。因此,根據(jù)所使用的構(gòu)造函數(shù),readonly字段也許具有不同的值。此外,const字段是編譯時(shí)常數(shù),而readonly字段可用于運(yùn)營時(shí)常數(shù)。readonly只能在聲明時(shí)或者構(gòu)造函數(shù)里面初始化,并且不能在static修飾的構(gòu)造函數(shù)里面。參考資料:51.

請(qǐng)解釋ASP。NET中的web頁面與其隱藏類之間的關(guān)系?一個(gè)ASP.NET頁面一般都相應(yīng)一個(gè)隱藏類,一般都在ASP.NET頁面的聲明中指定了隱藏類例如一個(gè)頁面Tst1.aspx的頁面聲明如下<%@Pagelanguage="c#"Codebehind="Tst1.aspx.cs"AutoEventWireup="false"Inherits="T1.Tst1"%>Codebehind="Tst1.aspx.cs"表白經(jīng)編譯此頁面時(shí)使用哪一個(gè)代碼文獻(xiàn)Inherits="T1.Tst1"表用運(yùn)營時(shí)使用哪一個(gè)隱藏類52.

什么是viewstate,能否禁用?是否所用控件都可以禁用?Viewstate是保存狀態(tài)的一種機(jī)制,EnableViewStat(yī)e屬性設(shè)立為false即可禁用。最有力的舉例子:Label、TextBox在禁用ViewStat(yī)e后不同的表現(xiàn)來說明。53、你對(duì)webservice的體會(huì)?答:假如自己寫的一些程序也希望別人可以通過Web服務(wù)來使用,也可以把自己編寫的方法貼上標(biāo)簽[WebMethed]來實(shí)現(xiàn)Web服務(wù)。[是當(dāng)編寫程序時(shí),希望實(shí)現(xiàn)一些別的網(wǎng)站已經(jīng)實(shí)現(xiàn)過的,也用Web服務(wù)可視成XML語言的編碼??梢允褂脛e人的編碼生成的XML找到自己需要的信息,來實(shí)現(xiàn)自己編寫的程序的一些功能。把傳智播客.net培訓(xùn)的如鵬網(wǎng)項(xiàng)目中用WebService實(shí)現(xiàn)管理客戶端的例子說出來。SOAP、WSDL。54您在什么情況下會(huì)用到虛方法?它與接口有什么不同?答案:子類重新定義父類的某一個(gè)方法時(shí),必須把父類的方法定義為virtual在定義接口中不能有方法體,虛方法可以。實(shí)現(xiàn)時(shí),子類可以不重新定義虛方法,但假如一個(gè)類繼承接口,那必須實(shí)現(xiàn)這個(gè)接口。講到這里了55.不定項(xiàng)選擇:(1)以下敘述對(duì)的的是:BCA.接口中可以有虛方法。B.一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。

C.接口不能被實(shí)例化。D.接口中可以包含已實(shí)現(xiàn)的方法。(2)從數(shù)據(jù)庫讀取記錄,你也許用到的方法有:BCD

A.ExecuteNonQuery

B.ExecuteScalar

C.Fill

D.ExecuteReader(3).對(duì)于一個(gè)實(shí)現(xiàn)了IDisposable接口的類,以下哪些項(xiàng)可以執(zhí)行與釋放或重置非托管資源相關(guān)的應(yīng)用程序定義的任務(wù)?(多選)

ABC

)

A.CloseB.DisposeC.Finalize

D.usingE.Quit

(4)以下關(guān)于ref和out的描述哪些項(xiàng)是對(duì)的的?(多選)

(

ACD

)

A.使用ref參數(shù),傳遞到ref參數(shù)的參數(shù)必須最先初始化。

B.使用out參數(shù),傳遞到out參數(shù)的參數(shù)必須最先初始化。

C.使用ref參數(shù),必須將參數(shù)作為ref參數(shù)顯式傳遞到方法。

D.使用out參數(shù),必須將參數(shù)作為out參數(shù)顯式傳遞到方法。

講到這里56.單項(xiàng)選擇:(1)下列選項(xiàng)中,(C)是引用類型。a)enum類型

b)struct類型

c)string類型

d)int類型(2).關(guān)于ASP.NET中的代碼隱藏文獻(xiàn)的描述對(duì)的的是(C)a)Web窗體頁的程序的邏輯由代碼組成,這些代碼的創(chuàng)建用于與窗體交互。編程邏輯唯一與用戶界面不同的文獻(xiàn)中。該文獻(xiàn)稱作為“代碼隱藏”文獻(xiàn),假如用C#創(chuàng)建,該文獻(xiàn)將具有“.ascx.cs”擴(kuò)展名。b)項(xiàng)目中所有Web窗體頁的代碼隱藏文獻(xiàn)都被編譯成.EXE文獻(xiàn)。c)項(xiàng)目中所有的Web窗體頁的代碼隱藏文獻(xiàn)都被編譯成項(xiàng)目動(dòng)態(tài)鏈接庫(.dll)文獻(xiàn)。d)以上都不對(duì)的。(3).下列描述錯(cuò)誤的是(D)a)類不可以多重繼承而接口可以;b)抽象類自身可以定義成員而接口不可以;c)抽象類和接口都不能被實(shí)例化;d)一個(gè)類可以有多個(gè)基類和多個(gè)基接口;57、DataReader和DataSet的異同?DataReader使用時(shí)始終占用SqlConnection,在線操作數(shù)據(jù)庫每次只在內(nèi)存中加載一條數(shù)據(jù),所以占用的內(nèi)存是很小的是只進(jìn)的、只讀的DataSet則是將數(shù)據(jù)一次性加載在內(nèi)存中.拋棄數(shù)據(jù)庫連接..讀取完畢即放棄數(shù)據(jù)庫連接(非連接模式)Dat(yī)aSet將數(shù)據(jù)所有加載在內(nèi)存中.所以比較消耗內(nèi)存...但是確比Dat(yī)aReader要靈活..可以動(dòng)態(tài)的添加行,列,數(shù)據(jù).對(duì)數(shù)據(jù)庫進(jìn)行回傳更新操作(動(dòng)態(tài)操作讀入到內(nèi)存的數(shù)據(jù))58、publicstat(yī)icconst;intA=1;這段代碼有錯(cuò)誤么?錯(cuò)誤:const不能被修飾為stat(yī)ic;由于定義為常量(const)后就是靜態(tài)的(stat(yī)ic)。59傳入某個(gè)屬性的set方法的隱含參數(shù)的名稱是什么?value,它的類型和屬性所聲名的類型相同。60、C#支持多重繼承么?類之間不支持,接口之間支持。類對(duì)接口叫做實(shí)現(xiàn),不叫繼承。61、C#中所有對(duì)象共同的基類是什么?System.Object62、通過超鏈接如何傳遞中文參數(shù)?答:用URL編碼,通過QueryString傳遞,用urlencode編碼用urldecode解碼63、string、String;int、Int32;Boolean、bool的區(qū)別String、Int32、Boolean等都屬于.Net中定義的類,而string、int、bool相稱于C#中對(duì)這些類定義的別名。CTS。64、Server.Transfer和Response.Redirect的區(qū)別是什么?(??迹┐穑篠erver.Transfer僅是服務(wù)器中控制權(quán)的轉(zhuǎn)向,在客戶端瀏覽器地址欄中不會(huì)顯示出轉(zhuǎn)向后的地址;Response.Redirect則是完全的跳轉(zhuǎn),瀏覽器將會(huì)得到跳轉(zhuǎn)的地址,并重新發(fā)送請(qǐng)求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。Server.Transfer是服務(wù)器請(qǐng)求資源,服務(wù)器直接訪問目的地址的URL,把那個(gè)URL的響應(yīng)內(nèi)容讀取過來,然后把這些內(nèi)容再發(fā)給瀏覽器,瀏覽器主線不知道服務(wù)器發(fā)送的內(nèi)容是從哪兒來的,所以它的地址欄中還是本來的地址。這個(gè)過程中瀏覽器和Web服務(wù)器之間通過了一次交互。Response.Redirect就是服務(wù)端根據(jù)邏輯,發(fā)送一個(gè)狀態(tài)碼,告訴瀏覽器重新去請(qǐng)求那個(gè)地址,一般來說瀏覽器會(huì)用剛才請(qǐng)求的所有參數(shù)重新請(qǐng)求。這個(gè)過程中瀏覽器和Web服務(wù)器之間通過了兩次交互。65、不是說字符串是不可變的嗎?strings="abc";s="123"不就是變了嗎?(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)String是不可變的在這段代碼中,s原先指向一個(gè)String對(duì)象,內(nèi)容是"abc",然后我們將s指向"123",那么s所指向的那個(gè)對(duì)象是否發(fā)生了改變呢?答案是沒有。這時(shí),s不指向本來那個(gè)對(duì)象了,而指向了另一個(gè)String對(duì)象,內(nèi)容為"123",本來那個(gè)對(duì)象還存在于內(nèi)存之中,只是s這個(gè)引用變量不再指向它了。66、是否可以從一個(gè)static方法內(nèi)部發(fā)出對(duì)非static方法的調(diào)用?不可以。由于非static方法是要與對(duì)象關(guān)聯(lián)在一起的,必須創(chuàng)建一個(gè)對(duì)象后,才可以在該對(duì)象上進(jìn)行方法調(diào)用,而stat(yī)ic方法調(diào)用時(shí)不需要?jiǎng)?chuàng)建對(duì)象,可以直接調(diào)用。也就是說,當(dāng)一個(gè)static方法被調(diào)用時(shí),也許還沒有創(chuàng)建任何實(shí)例對(duì)象,假如從一個(gè)static方法中發(fā)出對(duì)非static方法的調(diào)用,那個(gè)非static方法是關(guān)聯(lián)到哪個(gè)對(duì)象上的呢?這個(gè)邏輯無法成立,所以,一個(gè)static方法內(nèi)部不能發(fā)出對(duì)非stat(yī)ic方法的調(diào)用。67、.Net中會(huì)存在內(nèi)存泄漏嗎,請(qǐng)簡樸描述。(*)所謂內(nèi)存泄露就是指一個(gè)不再被程序使用的對(duì)象或變量一直被占據(jù)在內(nèi)存中。.Net中有垃圾回收機(jī)制,它可以保證一對(duì)象不再被引用的時(shí)候,即對(duì)象變成了孤兒的時(shí)候,對(duì)象將自動(dòng)被垃圾回收器從內(nèi)存中清除掉。雖然.Net可以回收無用的對(duì)象,但是.Net仍然存在由于使用不妥導(dǎo)致的內(nèi)存泄露問題。.Net中的內(nèi)存泄露的情況:長生命周期的對(duì)象持有短生命周期對(duì)象的引用就很也許發(fā)生內(nèi)存泄露,盡管短生命周期對(duì)象已經(jīng)不再需要,但是由于長生命周期對(duì)象持有它的引用而導(dǎo)致不能被回收,這就是.Net中內(nèi)存泄露的發(fā)生場景,通俗地說,就是程序員也許創(chuàng)建了一個(gè)對(duì)象,以后一直不再使用這個(gè)對(duì)象,這個(gè)對(duì)象卻一直被引用,即這個(gè)對(duì)象無用但是卻無法被垃圾回收器回收的,這就是.Net中也許出現(xiàn)內(nèi)存泄露的情況,例如,緩存系統(tǒng),我們加載了一個(gè)對(duì)象放在緩存中(例如放在一個(gè)全局Dictionary對(duì)象中),然后一直不再使用它,這個(gè)對(duì)象一直被緩存引用,但卻不再被使用。formManager{publicstaticIList<Form>forms=new.....;}擴(kuò)展:使用弱引用那么即使被引用也可以被回收。68說出一些常用的類、接口,請(qǐng)各舉5個(gè)要讓人家感覺你對(duì).Net開發(fā)很熟,所以,不能僅僅只列誰都能想到的那些東西,要多列你在做項(xiàng)目中涉及的那些東西。就寫你最近寫的那些程序中涉及的那些類。常用的類:StreamReader、WebClient、Dictionary<K,V>、StringBuilder、SqlConnection、FileStream、File、Regex、List<T>常用的接口:IDisposable、IEnumerable、IDbConnection、IComparable、ICollection、IList、IDictionary要出乎意料!不要僅僅完畢任務(wù)!69、BS與CS的聯(lián)系與區(qū)別。C/S是Client/Server的縮寫??蛻舳诵枰惭b專用的客戶端軟件。B/S是Brower/Server的縮寫,客戶機(jī)上只要安裝一個(gè)瀏覽器。在這種結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是重要邏輯在服務(wù)器端實(shí)現(xiàn)。瀏覽器通過WebServer同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。C/S與B/S區(qū)別:1).硬件環(huán)境不同:C/S一般建立在專用的網(wǎng)絡(luò)上,小范圍里的網(wǎng)絡(luò)環(huán)境,局域網(wǎng)之間再通過專門服務(wù)器提供連接和數(shù)據(jù)互換服務(wù).B/S建立在廣域網(wǎng)之上的,不必是專門的網(wǎng)絡(luò)硬件環(huán)境,例與電話上網(wǎng),租用設(shè)備.信息自己管理.有比C/S更強(qiáng)的適應(yīng)范圍,一般只要有操作系統(tǒng)和瀏覽器就行2).對(duì)安全規(guī)定不同C/S一般面向相對(duì)固定的用戶群,對(duì)信息安全的控制能力很強(qiáng).一般高度機(jī)密的信息系統(tǒng)采用C/S結(jié)構(gòu)適宜.可以通過B/S發(fā)布部分可公開信息.B/S建立在廣域網(wǎng)之上,對(duì)安全的控制能力相對(duì)弱,也許面向不可知的用戶。3).解決問題不同C/S程序可以解決用戶面固定,并且在相同區(qū)域,安全規(guī)定高需求,與操作系統(tǒng)相關(guān).應(yīng)當(dāng)都是相同的系統(tǒng)。C/S的客戶端由于是本地程序,因此和本地硬件、程序的交互性很強(qiáng),比如可以控制本機(jī)的其他程序、可以讀寫本地磁盤文獻(xiàn)、可以與硬件交互。B/S建立在廣域網(wǎng)上,面向不同的用戶群,分散地區(qū),這是C/S無法作到的.與操作系統(tǒng)平臺(tái)關(guān)系最小,正應(yīng)為如此B/S很難和本地硬件、程序、文獻(xiàn)進(jìn)行交互,比如很難控制本機(jī)的其他程序、很難讀寫本地磁盤文獻(xiàn)、很難與硬件交互,當(dāng)然可以用ActiveX技術(shù)解決,比如網(wǎng)銀等就是這么解決的,這樣做的問題就是也許會(huì)被客戶拒絕,并且只局限于Windows操作系統(tǒng)。C/S也分為兩層架構(gòu)和三層架構(gòu)。兩層架構(gòu):客戶端程序程序直連數(shù)據(jù)庫;三層架構(gòu):客戶端訪問服務(wù)端的服務(wù),重要邏輯代碼寫在服務(wù)端的服務(wù)中,然后服務(wù)端服務(wù)再去訪問數(shù)據(jù)庫,Oracle版分布式呼喊中心,WCF。70、編寫一個(gè)單例(Singleton)類。參考復(fù)習(xí)ppt。把構(gòu)造函數(shù)設(shè)立為private,設(shè)立一個(gè)public、static的對(duì)象實(shí)例publicFileManager{privateFileManager(){}publicstaticFileManagerInstance=newFileManager();}擴(kuò)展:搜“C#Singleton”

71、什么是sql注入?如何避免sql注入?用戶根據(jù)系統(tǒng)的程序構(gòu)造非法的參數(shù)從而導(dǎo)致程序執(zhí)行不是程序員盼望的惡意SQL語句。使用參數(shù)化的SQL就可以避免SQL注入。具體參考復(fù)習(xí)ppt。舉例子,擺事實(shí)!1'or1=172、數(shù)據(jù)庫三范式是什么?傳智播客風(fēng)格的非嚴(yán)謹(jǐn)卻一下子明了的解答方式:第二范式:表必須有主鍵。第三范式:表引用其他的表必須通過主鍵引用。73、說出一些數(shù)據(jù)庫優(yōu)化方面的經(jīng)驗(yàn)?索引內(nèi)部原理:想象成Dictionary,插入、刪除、更新的速度慢了,加上索引也多占用了空間,查詢的速度快了。加上索引以后速度提高非常明顯。(1)在經(jīng)常檢索的字段上(select*fromPersonwhereName=@Name)使用索引提高查詢速度。(2)select中只列出必要的字段,而不是*。(3)避免隱式類型轉(zhuǎn)換導(dǎo)致的全表掃描,在索引上使用函數(shù)也會(huì)導(dǎo)致全表掃描(由于索引只是為字段建立的,一旦使用表達(dá)式或者函數(shù),那么索引就是失效了,當(dāng)然也可以使用“函數(shù)索引”、“表達(dá)式索引”解決這個(gè)問題),使用索引不一定能提高查詢速度。(4)避免在索引列上使用計(jì)算(whereName+'A'=@MyName)加分的回答:不進(jìn)行無意義優(yōu)化,根據(jù)性能查看器的報(bào)表,對(duì)最耗時(shí)的SQL進(jìn)行優(yōu)化。74、什么是數(shù)據(jù)庫事務(wù)?事務(wù)三個(gè)特性:一致性、原子性、隔離性。幾個(gè)SQL語句,要么所有執(zhí)行成功,要么所有執(zhí)行失敗。舉例就用最經(jīng)典的銀行轉(zhuǎn)賬的例子就行,然后再舉一個(gè)項(xiàng)目中用的例子:傳智播客.net培訓(xùn)中批量導(dǎo)入客戶數(shù)據(jù)的時(shí)候要么所有導(dǎo)入成功,要么所有導(dǎo)入失敗。事務(wù)的三個(gè)操作:Begin、Commit、RollBack。取剛插入數(shù)據(jù)的id值,就要用事務(wù)來隔離:Insert和selecttop1idfrom75、談?wù)勀銓?duì)設(shè)計(jì)模式的理解(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)世界上本沒有模式,用的人多了,也就有了模式。不用刻意記每種模式的名字,手中無模式,心中有模式。大部分設(shè)計(jì)模式就是接口、抽象類的一個(gè)組合。ADO.Net基于接口編程,SafeDbCommand、SafeConnection。SettingsProvider。沒必要記模式的名字。舉例:傳智播客.net培訓(xùn)時(shí)SettingsProvider、第三方支付的例子。76、談?wù)刅iewState。談?wù)剬?duì)ASP.Net原理的理解。談?wù)凙SP.Net生命周期。Label、Textbox在禁用ViewState的時(shí)候自增的不同表現(xiàn)Http是無狀態(tài)的,WebForm為了實(shí)現(xiàn)基于http的“有狀態(tài)”從而簡化開發(fā),ViewState用來在兩次請(qǐng)求間保持狀態(tài)。頁面返回前將界面的狀態(tài)序列化到ViewState中,這樣就將狀態(tài)保存在了瀏覽器中,下次頁面提交的時(shí)候會(huì)順便再將ViewState提交到服務(wù)器,這樣服務(wù)器就根據(jù)ViewState還原了狀態(tài),這樣WebForm開發(fā)就像有狀態(tài)同樣了。談?wù)勛远xAutoInc控件。77、post、get的區(qū)別get的參數(shù)會(huì)顯示在瀏覽器地址欄中,而post的參數(shù)不會(huì)顯示在瀏覽器地址欄中;使用post提交的頁面在點(diǎn)擊【刷新】按鈕的時(shí)候?yàn)g覽器一般會(huì)提醒“是否重新提交”,而get則不會(huì);用get的頁面可以被搜索引擎抓取,而用post的則不可以;用post可以提交的數(shù)據(jù)量非常大,而用get可以提交的數(shù)據(jù)量則非常小(2k),受限于網(wǎng)頁地址的長度。用post可以進(jìn)行文獻(xiàn)的提交,而用get則不可以。參考閱讀:78、下面的程序執(zhí)行結(jié)果是什么?(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)classPerson{publicintAge{get;set;}}inti1=20;inti2=i1;i1++;Console.WriteLine(i2);Personp1=newPerson();p1.Age=20;Personp2=p1;p1.Age++;Console.WriteLine(p2.Age);答案:2021解釋:引用類型和值類型的區(qū)別。79、Http默認(rèn)的端標(biāo)語是(80)、Ftp默認(rèn)的端標(biāo)語是(21)、SQLServer的默認(rèn)端標(biāo)語是(1433)(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)80、運(yùn)算符++a表達(dá)(先將a加1,然后表達(dá)式的值為a加1后的值),i++表達(dá)(表達(dá)式的值為a,然后a加1)。81、下面程序的執(zhí)行結(jié)果是什么?(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)inti=10;Console.WriteLine(i++);Console.WriteLine(++i);Console.WriteLine(i=20);答案:101220解答:前兩個(gè)參考第80題,i++表達(dá)式的值為i自增之前的值,所以打印10,執(zhí)行完畢后i變成11,執(zhí)行++i的時(shí)候表達(dá)式的值為自增以后的值12。C#中賦值表達(dá)式的值為變量被賦值的值,因此最后一個(gè)就輸出i賦值后的值20while((line=reader.ReadLine())!=null){}82、假如不用VisualStudio,用哪個(gè)命令行編譯C#程序?(*)(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)答:csc.exe。83、下列哪個(gè)名詞和WebService不直接相關(guān)?(B)(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)A、UDDIB、GUIDC、WSDLD、SOAPSOAP和HTTP的關(guān)系:SOAP基于Http協(xié)議的,和普通網(wǎng)頁不同的是網(wǎng)頁返回HTML,SOAP則是符合SOAP協(xié)議的XML數(shù)據(jù)。84、.NetFramework中的類是專門供C#調(diào)用的是嗎?(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)答:錯(cuò)。VB.Net等語言都可以調(diào)用.NetFramework中的類。CTS、CLS。85、開放性問題:說出盡也許多的基于.NetFramework的語言。(*)(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)參考解答:C#、VB.Net、F#、PowerShell、IronPython、J#、Ruby.Net86、.Net、ASP.Net、C#、VisualStudio之間的關(guān)系是什么?(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)答:.Net一般指的是.NetFramework,提供了基礎(chǔ)的.Net類,這些類可以被任何一種.Net編程語言調(diào)用,.NetFramework還提供了CLR、JIT、GC等基礎(chǔ)功能。ASP.Net是.Net中用來進(jìn)行Web開發(fā)的一種技術(shù),ASP.Net的頁面部分寫在aspx

文獻(xiàn)中,邏輯代碼通常通過Code-behind的方式用C#、VB.Net等支持.Net的語言編寫。C#是使用最廣泛的支持.Net的編程語言。除了C#尚有VB.Net、IronPython等。VisualStudio是微軟提供的用來進(jìn)行.Net開發(fā)的集成開發(fā)環(huán)境(IDE),使用VisualStudio可以簡化很多工作,不用程序員直接調(diào)用csc.exe等命令行進(jìn)行程序的編譯,并且VisualStudio提供了代碼自動(dòng)完畢、代碼高亮等功能方便開發(fā)。除了VisualStudio,尚有SharpDevelop、MonoDevelop等免費(fèi)、開源的IDE,VisualStudioExpress版這個(gè)免費(fèi)版本。87、AJAX解決什么問題?如何使用AJAX?AJAX有什么問題需要注意?項(xiàng)目中哪里用到了AJAX?(傳智播客.Net培訓(xùn)班原創(chuàng)模擬題)答:AJAX解決的問題就是“無刷新更新頁面”,用傳統(tǒng)的HTML表單方式進(jìn)行頁面的更新時(shí),每次都要將請(qǐng)求提交到服務(wù)器,服務(wù)器返回后再重繪界面,這樣界面就會(huì)經(jīng)歷:提交→變白→重新顯示這樣一個(gè)過程,用戶體驗(yàn)非常差,使用AJAX則不會(huì)導(dǎo)致頁面重新提交、刷新。AJAX最本質(zhì)的實(shí)現(xiàn)是在Javascript中使用XMLHttpRequest進(jìn)行Http的請(qǐng)求,開發(fā)中通常使用UpdatePanel、JQuery等方式簡化AJAX的開發(fā),UpdatePanel的方式實(shí)現(xiàn)AJAX最簡樸,但是數(shù)據(jù)通訊量比較大,由于要來回傳整個(gè)ViewState,并且不靈活,對(duì)于復(fù)雜的需求則可以使用JQuery提供的ajax功能。UpdatePanel的內(nèi)部原理。AJAX最重要的問題是無法跨域請(qǐng)求(.com→so.rupeng.com),也就是無法在頁面中向和當(dāng)前域名不同的頁面發(fā)送請(qǐng)求,可以使用在當(dāng)前頁面所在的域的服務(wù)端做代理頁面的方式解決。在如

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論