c#編程基礎(chǔ)練習(xí)題與答案_第1頁(yè)
c#編程基礎(chǔ)練習(xí)題與答案_第2頁(yè)
c#編程基礎(chǔ)練習(xí)題與答案_第3頁(yè)
c#編程基礎(chǔ)練習(xí)題與答案_第4頁(yè)
c#編程基礎(chǔ)練習(xí)題與答案_第5頁(yè)
已閱讀5頁(yè),還剩102頁(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)介

面向?qū)ο蟮乃枷胫饕ㄊ裁创?個(gè)人認(rèn)為一各程序語(yǔ)言要成為真正的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,它必須符合下列條件:1抽象(abstraction)—抽象能夠有效地管理一個(gè)問(wèn)題的復(fù)雜性,其作法是劃分出與該問(wèn)題相關(guān)的一組對(duì)象.2封裝(Encapsulation)—封裝是指將一個(gè)抽象的內(nèi)部實(shí)現(xiàn)隱藏在特定的對(duì)象之內(nèi).3多態(tài)(polymorphism)—多態(tài)會(huì)提供相同方法的多種操作方法的多種操作實(shí)作.例如,不同的對(duì)象都會(huì)擁有一個(gè)Save方法,但是每一個(gè)Save方法會(huì)執(zhí)行不同的操作.4繼承(inheritanee)—VisualC#2005最令人興奮之處就是其繼承特性.vc#2005則提供了真正的方法繼承,因此您可以重復(fù)使用一個(gè)類的實(shí)例.什么是中的用戶控件自己動(dòng)手作自己的控件來(lái)取代.NET提供的控件。這種控件就是用戶控件。后綴為.ascx什么叫應(yīng)用程序域什么是受管制的代碼什么是強(qiáng)類型系統(tǒng)什么是裝箱和拆箱什么是重載什么是多態(tài)CTS、CLS和CLR分別作何解釋應(yīng)用程序域:應(yīng)用程序域(通常是AppDomain)是用于隔離應(yīng)用程序的虛擬進(jìn)程。在同一個(gè)應(yīng)用程序作用域中創(chuàng)建的所有對(duì)象(換句話說(shuō),從該應(yīng)用程序的入口點(diǎn)開(kāi)始沿著對(duì)象激活序列的任何地方)都在同一個(gè)應(yīng)用程序域中創(chuàng)建。多個(gè)應(yīng)用程序域可以存在于一個(gè)操作系統(tǒng)進(jìn)程中,使它們成為隔離應(yīng)用程序的簡(jiǎn)便方式。操作系統(tǒng)進(jìn)程通過(guò)使用各不相同的內(nèi)存地址空間來(lái)提供隔離。盡管它是有效的,但也是代價(jià)昂貴的,并且不能達(dá)到大型Web服務(wù)器所需要的數(shù)量。與其相比,公共語(yǔ)言運(yùn)行時(shí)通過(guò)管理在應(yīng)用程序域中運(yùn)行的代碼的內(nèi)存使用來(lái)強(qiáng)制進(jìn)行應(yīng)用程序隔離。這樣就確保它不會(huì)訪問(wèn)應(yīng)用程序域以外的內(nèi)存。需要注意的是,只有類型安全的代碼才能以這種方式管理(當(dāng)在應(yīng)用程序域中加載不安全代碼時(shí),運(yùn)行時(shí)不能保證隔離)。理解應(yīng)用程序域:應(yīng)用程序域是.NET運(yùn)行庫(kù)的邏輯進(jìn)程表示,操作系統(tǒng)進(jìn)程可以包含多個(gè)應(yīng)用程序域。應(yīng)用程序域具有下列優(yōu)點(diǎn):1、隱藏了進(jìn)程具體的操作系統(tǒng)信息。從而允許把.NET放在不同的操作系統(tǒng)下。2、提供了隔離。即使運(yùn)行在同一個(gè)進(jìn)程中的屬于不同域的應(yīng)用程序也不能直接共享全局?jǐn)?shù)據(jù)、靜態(tài)數(shù)據(jù)或其他資源。所以,一個(gè)應(yīng)用程序域失敗了,也不會(huì)影響到同一個(gè)進(jìn)程中的其他應(yīng)用程序域。3、對(duì)于不需要昂貴的IPC機(jī)制的進(jìn)程,應(yīng)用程序域允許.NET運(yùn)行庫(kù)優(yōu)化運(yùn)行在這種進(jìn)程中的應(yīng)用程序間的通信。因?yàn)閼?yīng)用程序域是被隔離的,所有.NET對(duì)象都會(huì)被界定在創(chuàng)建它的應(yīng)用程序域內(nèi)。如果跨應(yīng)用程序域的邊界傳遞對(duì)象引用,該被引用對(duì)象就被稱為遠(yuǎn)程對(duì)象。裝箱和拆箱在C#中的有兩種類型的變量:值類型和引用類型。當(dāng)值類型和引用類型相互轉(zhuǎn)化時(shí),會(huì)發(fā)生裝箱和拆箱的過(guò)程。這里有一點(diǎn)要聲明:經(jīng)過(guò)拆箱或裝箱的對(duì)象會(huì)多出它自己一份拷貝。它和它的拷貝不在一個(gè)存儲(chǔ)區(qū)域。這也是值類型和引用類型的區(qū)別所在。值類型總是在棧中,而引用類型總是在托管堆中。(目前也支持了裝箱和拆箱,但是我目前不知道是否和C#一樣)。為了進(jìn)一步理解看下面例子:structPoint{publicintx;publicinty;}staticvoidMain(){Pointp;=10;=20;Objecto=p;將值類型從棧中拷貝到堆中。

*從托管堆中將對(duì)象拷貝到棧中。//Pointp2=(Point)p;(“:="++“:=“+;?,=16;=34;(“:="++“:=“+;?,(“:="++“:=“+;?,}輸出結(jié)果為::=10;=20;:=10;=20;:=16;=34;可知,變量經(jīng)過(guò)拆箱/裝箱后,得到是自己的另一份拷貝。裝箱和取消裝箱的概念是C#的類型系統(tǒng)的核心。它在“值類型”和“引用類型”之間的架起了一座橋梁,使得任何“值類型”的值都可以轉(zhuǎn)換為object類型的值,反過(guò)來(lái)轉(zhuǎn)換也可以。裝箱和取消裝箱使我們能夠統(tǒng)一地來(lái)考察類型系統(tǒng),其中任何類型的值最終都可以按對(duì)象處理多態(tài)一.形象理解兩條理解的原則:(1)一個(gè)派生類對(duì)象可以被聲明成一個(gè)基類,或者是一個(gè)基類指針可以指向一個(gè)派生類對(duì)象:MainMainET結(jié)合Java和COM解決方案兩者優(yōu)點(diǎn)來(lái)解決互操作性問(wèn)題。類似于COM定義的標(biāo)準(zhǔn)二進(jìn)制格式,.NET定義了一個(gè)稱為通用類型系統(tǒng)CommonTypeSystem(CTS)的類型標(biāo)準(zhǔn)。這個(gè)類型系統(tǒng)不但實(shí)現(xiàn)了COM的變量兼容類型,而且還定義了通過(guò)用戶自定義類型的方式來(lái)進(jìn)行類型擴(kuò)展。任何以.NET平臺(tái)作為目標(biāo)的語(yǔ)言必須建立它的數(shù)據(jù)類型與CTS的類型間的映射。所有.NET語(yǔ)言共享這一類型系統(tǒng),實(shí)現(xiàn)它們之間無(wú)縫的互操作。該方案還提供了語(yǔ)言之間的繼承性。例如,用戶能夠在中派生一個(gè)由C#編寫的類。很顯然,編程語(yǔ)言的區(qū)別不僅僅在于類型。例如,一些語(yǔ)言支持多繼承性,一些語(yǔ)言支持無(wú)符號(hào)數(shù)據(jù)類型,一些語(yǔ)言支持運(yùn)算符重載。用戶應(yīng)認(rèn)識(shí)到這一點(diǎn),因此.NET通過(guò)定義公共語(yǔ)言規(guī)范(CLS:CommonLanguageSpecification),限制了由這些不同引發(fā)的互操作性問(wèn)題。CLS制定了一種以.NET平臺(tái)為目標(biāo)的語(yǔ)言所必須支持的最小特征,以及該語(yǔ)言與其他.NET語(yǔ)言之間實(shí)現(xiàn)互操作性所需要的完備特征。認(rèn)識(shí)到這點(diǎn)很重要,這里討論的特征問(wèn)題已不僅僅是語(yǔ)言間的簡(jiǎn)單語(yǔ)法區(qū)別。例如,CLS并不去關(guān)心一種語(yǔ)言用什么關(guān)鍵字實(shí)現(xiàn)繼承,只是關(guān)心該語(yǔ)言如何支持繼承。CLS是CTS的一個(gè)子集。這就意味著一種語(yǔ)言特征可能符合CTS標(biāo)準(zhǔn),但又超出CLS的范疇。例如:C#支持無(wú)符號(hào)數(shù)字類型,該特征能通過(guò)CTS的測(cè)試,但CLS卻僅僅識(shí)別符號(hào)數(shù)字類型。因此,如果用戶在一個(gè)組件中使用C#的無(wú)符號(hào)類型,就可能不能與不使用無(wú)符號(hào)類型的語(yǔ)言(如設(shè)計(jì)的.NET組件實(shí)現(xiàn)互操作。這里用的是“可能不”,而不是“不可能”,因?yàn)檫@一問(wèn)題實(shí)際依賴于對(duì)non-CLS-compliant項(xiàng)的可見(jiàn)性。事實(shí)上,CLS規(guī)則只適用于或部分適用于那些與其他組件存在聯(lián)系的組件中的類型。實(shí)際上,用戶能夠安全實(shí)現(xiàn)含私有組件的項(xiàng)目,而該組件使用了用戶所選擇使用的.NET語(yǔ)言的全部功能,且無(wú)需遵守CLS的規(guī)范。另一方面,如果用戶需要.NET語(yǔ)言的互操作性,那么用戶的組件中的公共項(xiàng)必須完全符合CLS規(guī)范。讓我們來(lái)看下面的C#代碼:publicclassFoo{privateuintA=4;publicuintB=5;publiclongGetA()returnA;}}最后一個(gè)C是公共語(yǔ)言運(yùn)行庫(kù)CommonLanguageRuntime(CLR)。簡(jiǎn)單地說(shuō),CLR是CTS的實(shí)現(xiàn),也就是說(shuō),CLR是應(yīng)用程序的執(zhí)行引擎和功能齊全的類庫(kù),該類庫(kù)嚴(yán)格按照CTS規(guī)范實(shí)現(xiàn)。作為程序執(zhí)行引擎,CLR負(fù)責(zé)安全地載入和運(yùn)行用戶程序代碼,包括對(duì)不用對(duì)象的垃圾回收和安全檢查。在CLR監(jiān)控之下運(yùn)行的代碼,稱為托管代碼(managedcode)。作為類庫(kù),CLR提供上百個(gè)可用的有用類型,而這些類型可通過(guò)繼承進(jìn)行擴(kuò)展。對(duì)于文件I/O、創(chuàng)建對(duì)話框、啟動(dòng)線程等類型——基本上能使用WindowsAPI來(lái)完成的操作,都可由其完成。讓我們正確看待“3C”。開(kāi)發(fā)人員在構(gòu)建自己的分布式應(yīng)用程序時(shí),因?yàn)橛脩粼诰幊虝r(shí)將直接面對(duì)CLR,應(yīng)將主要精力放在學(xué)習(xí)了解CLR上,而不是CTS和CLS。而對(duì)于希望以.NET平臺(tái)為目標(biāo)的語(yǔ)言和工具開(kāi)發(fā)商來(lái)說(shuō),就需要深入理解CTS和CLS?;ゲ僮餍越M件是分布式應(yīng)用的關(guān)鍵,因此理解.NET如何通過(guò)定義公共類型實(shí)現(xiàn)這一目標(biāo),也就顯得十分重要。列舉一下你所了解的XML技術(shù)及其應(yīng)用5?值類型和引用類型的區(qū)別寫出C#的樣例代碼Ref與Out的區(qū)別。Ref與Out的區(qū)別是相同點(diǎn):使參數(shù)按引用傳遞,注意這里的“引用”與我們通常說(shuō)的“對(duì)象引用”不一樣,可以形象的理解為,類似于C/C++中傳指針(地址)。效果是,被調(diào)用方對(duì)該參數(shù)的修改會(huì)反映到該變量中,即當(dāng)調(diào)用結(jié)束返回時(shí),調(diào)用方看到的是修改過(guò)的值。方法定義和調(diào)用方法都必須顯式使用ref或者out關(guān)鍵字不同點(diǎn):1。傳遞到ref的參數(shù)必須最先初始化,即由調(diào)用方顯式初始化。2。傳遞到out的參數(shù)在傳遞之前不需要顯式初始化,但需要調(diào)用方在方法返回之前必須對(duì)其賦值。使用場(chǎng)景:關(guān)于重載說(shuō)明:1。ref和out關(guān)鍵字在運(yùn)行時(shí)的處理方式不同,但在編譯時(shí)的處理方式相同。因此,如果一個(gè)方法采用ref參數(shù),而另一個(gè)方法采用out參數(shù),則無(wú)法重載這兩個(gè)方法。2。但是,如果一個(gè)方法采用ref或out參數(shù),而另一個(gè)方法不采用這兩類參數(shù),則可以進(jìn)行重載。使用ref前必須對(duì)變量賦值,out不用。out的函數(shù)會(huì)清空變量,即使變量已經(jīng)賦值也不行,退出函數(shù)時(shí)所有out引用的變量都要賦值,ref引用的可以修改,也可以不修改。區(qū)別可以參看下面的代碼:usingSystem;classTestAppstaticvoidoutTest(outintx,outinty){Main何理解委托單從委托的概念上來(lái)講,很簡(jiǎn)單,就是對(duì)方法的引用,包括靜態(tài)方法和對(duì)象實(shí)例的方法,有點(diǎn)類似C語(yǔ)言中的方法指針,不過(guò)方法指針只能引用靜態(tài)方法!而且委托是類安全的!一句話來(lái)概括:委托就是方法的入口!調(diào)用委托就是調(diào)用方法,可能有人會(huì)說(shuō)既然調(diào)用委托就是調(diào)用方法,那為什么不直接調(diào)用方法了,干嗎非得通過(guò)委托來(lái)調(diào)用!一開(kāi)始我也是這么想,包括現(xiàn)在也還有這個(gè)疑惑,個(gè)人覺(jué)得,如果撇開(kāi)事件來(lái)說(shuō),委托除了匿名方法名稱之外,沒(méi)有具體實(shí)質(zhì)型的好處!意思就是說(shuō)我們?nèi)绻皇窃谑录镉梦?和直接調(diào)用方法是沒(méi)有本質(zhì)區(qū)別的!至于委托的聲明格式,其基本語(yǔ)法為:修飾符delegate返回類型代理名稱(參數(shù)列表)比如說(shuō)publicdelegatevoidMyDelegate(inti);實(shí)例化的時(shí)候給它賦值一個(gè)方法(實(shí)例或靜態(tài)方法)名就可以了MyDelegateMD=newMyDelegate(類中的方法名)委托還可以實(shí)現(xiàn)多重委托,可以用Combine方法講不同代理組在一起,也可以用Remove方法從多重代理中除去一個(gè)代理,不過(guò)在我們實(shí)際使用可以不需要這么麻煩,用+,-可以達(dá)到這個(gè)目的!比如說(shuō):MyDelegateMD=newMyDelegate(方法1);MyDelegateMD2=newMyDelegate(方法2);MyDelegateMD3=MD+MD2;也可以這么寫MyDelegateMD3+=newMyDelegate(方法1);MyDelegateMD3+=newMyDelegate(方法2);執(zhí)行代理MD3就是調(diào)用方法1和方法2;多重代理個(gè)人覺(jué)得在事件委托中用處很大,因?yàn)樵趯?shí)際對(duì)象中,一個(gè)方法執(zhí)行會(huì)觸發(fā)多個(gè)方法相繼執(zhí)行,這個(gè)時(shí)候會(huì)需要多重代理這個(gè)概念!使用多重代理的時(shí)候要注意方法返回類型必須是void類型的!PS:在代理類中有2個(gè)屬性,一個(gè)是Method,表示所應(yīng)用方法的名稱!另一個(gè)是Target,表示實(shí)例方法所在對(duì)象的類型,如果是靜態(tài)方法,則返回NULL事件(Event)正如我上面說(shuō)的那樣,如果撇開(kāi)事件,委托好像沒(méi)有多大用途,但也只是假設(shè),委托就是為事件服務(wù)的,兩者是分不開(kāi)的.言事件比言委托!在C#中,事件和屬性,方法一樣,是類的一種成員,通過(guò)事件的使用,可以在類的對(duì)象發(fā)生某種變化,通過(guò)事件,來(lái)觸發(fā)某些方法來(lái)處理事件的發(fā)生!舉個(gè)通俗的例子,在的窗體生成種,拖進(jìn)來(lái)一個(gè)按鈕,雙擊它,頁(yè)面后臺(tái)會(huì)自動(dòng)生成按鈕事件的方法名稱,編程人員只要在該方法體內(nèi)寫上具體方法即可!那么按鈕類里面是怎么實(shí)現(xiàn)的了?具體是這樣的,在按鈕類里面聲明了一個(gè)事件委托:publicenvetEventHandlerClick;并寫了一個(gè)觸發(fā)該事件的方法:protectedvirtualvoidOnClick(EventArgese)if(Click!=Null){Click(this,e)}}而什么時(shí)候調(diào)用上面這個(gè)方法,根據(jù)程序結(jié)構(gòu)類型不同而異,在WEB應(yīng)用程序中,是通過(guò)回傳事件接口來(lái)調(diào)用上面這個(gè)方法,在按鈕類里只是實(shí)現(xiàn)了事件委托,具體雙擊按鈕觸發(fā)的實(shí)際方法是在頁(yè)面程序里編寫的!(PS:所以這也是我認(rèn)為使用事件委托的最大好處,機(jī)動(dòng)行好,靈活,如果不用委托,而是直接調(diào)用方法,那么所調(diào)用的方法就固定死了,不利于實(shí)際面向?qū)ο缶幊讨谐霈F(xiàn)的未預(yù)型方法,不靈活了)在頁(yè)面程序?yàn)榘粹o綁定事件委托所引用的方法是開(kāi)發(fā)環(huán)境自動(dòng)幫我們完成的,但我們要清楚實(shí)現(xiàn)的必要步驟:在頁(yè)面程序里必須給按鈕的事件實(shí)例化方法,在的頁(yè)面代碼中的privatevoidInitializeComponent()里要寫上:+=new;明事件委托;2.觸發(fā)事件的方法;3.實(shí)例化事件委托(給委托添加引用方法)msdn2005中是這樣解釋的:委托具有以下特點(diǎn):委托類似于C++函數(shù)指針,但它是類型安全的。委托允許將方法作為參數(shù)進(jìn)行傳遞。委托可用于定義回調(diào)方法。委托可以鏈接在一起;例如,可以對(duì)一個(gè)事件調(diào)用多個(gè)方法。方法不需要與委托簽名精確匹配。有關(guān)更多信息,請(qǐng)參見(jiàn)協(xié)變和逆變。C#版引入了匿名方法的概念,此類方法允許將代碼塊作為參數(shù)傳遞,以代替單獨(dú)定義的方法。委托適用于那種在某些其他語(yǔ)言中需用函數(shù)指針來(lái)解決的情況(場(chǎng)合)。但是,與函數(shù)指針不同,委托是面向?qū)ο蠛皖愋桶踩?。委托聲明定義一個(gè)類,它是從類派生的類。委托實(shí)例封裝了一個(gè)調(diào)用列表,該列表列出了一個(gè)或多個(gè)方法,每個(gè)方法稱為一個(gè)可調(diào)用實(shí)體。對(duì)于實(shí)例方法,可調(diào)用實(shí)體由一個(gè)實(shí)例和該實(shí)例的方法組成。對(duì)于靜態(tài)方法,可調(diào)用實(shí)體僅由一個(gè)方法組成。如果用一組合適的參數(shù)來(lái)調(diào)用一個(gè)委托實(shí)例,則該委托實(shí)例所封裝的每個(gè)可調(diào)用實(shí)體都會(huì)被調(diào)用,并且用的都是上述的同一組參數(shù)。委托實(shí)例的一個(gè)有趣且有用的屬性是:它既不知道也不關(guān)心有關(guān)它所封裝的方法所屬的類的種種詳情;對(duì)它來(lái)說(shuō)最重要的是這些方法與該委托的類型兼容(第節(jié))。這使委托非常適合“匿名”調(diào)用。這是一個(gè)強(qiáng)大的功能。定義和使用委托分三個(gè)步驟:聲明、實(shí)例化和調(diào)用。#中的接口和類有什么異同。一個(gè)接口定義一個(gè)協(xié)定。實(shí)現(xiàn)接口的類或結(jié)構(gòu)必須遵守其協(xié)定。接口可以包含方法、屬性、索引器和事件作為成員。接口是負(fù)責(zé)功能的定義,項(xiàng)目中通過(guò)接口來(lái)規(guī)范類,操作類以及抽象類的概念!而類是負(fù)責(zé)功能的具體實(shí)現(xiàn)!在類中也有抽象類的定義,抽象類與接口的區(qū)別在于:抽象類是一個(gè)不完全的類,類里面有抽象的方法,屬性,也可以有具體的方法和屬性,需要進(jìn)一步的專業(yè)化。但接口是一個(gè)行為的規(guī)范,里面的所有東西都是抽象的!一個(gè)類只可以繼承一個(gè)基類也就是父類,但可以實(shí)現(xiàn)多個(gè)接口PS:接口除了規(guī)范一個(gè)行為之外,在具體項(xiàng)目中的實(shí)際作用也是十分重要的,在面向?qū)ο蟮脑O(shè)計(jì)原則以及設(shè)計(jì)模式的使用中,無(wú)不體現(xiàn)作為一個(gè)接口的使用好處,最直接的就是設(shè)計(jì)原則中OCP(開(kāi)放封閉原則),我們使用接口,而不需要關(guān)心他的具體實(shí)現(xiàn),具體實(shí)現(xiàn)的細(xì)節(jié)變化也無(wú)關(guān)客戶端(使用接口的類)的使用,對(duì)與擴(kuò)展是開(kāi)放的,我們可以另寫一個(gè)接口的實(shí)現(xiàn)來(lái)擴(kuò)展當(dāng)前程序,而不影響上層的使用,但對(duì)修改是封閉的,即我們不能夠再去修改接口的定義,當(dāng)然這個(gè)“不能夠”是指在規(guī)范原則上不應(yīng)該這么做!9?。net中讀寫數(shù)據(jù)庫(kù)需要用到哪些類他們的作用連接和TCP連接的異同。的身份驗(yàn)證方式有哪些分別是什么原理進(jìn)程和線程分別怎么理解簡(jiǎn)單的說(shuō),你每啟動(dòng)一個(gè)程序,就啟動(dòng)了一個(gè)進(jìn)程。在Windows下,進(jìn)程是最小運(yùn)行單位。在Windows95/NT下,每個(gè)進(jìn)程還可以啟動(dòng)幾個(gè)線程,比如每下載一個(gè)文件可以單獨(dú)開(kāi)一個(gè)線程。在Windows95/NT下,線程是最小單位。WINDOWS的多任務(wù)特性使得線程之間獨(dú)立運(yùn)行,但是它們彼此共享虛擬空間,也就是共用變量,線程有可能會(huì)同時(shí)操作一片內(nèi)存。線程與進(jìn)程的區(qū)別多線程共存于應(yīng)用程序中是現(xiàn)代操作系統(tǒng)中的基本特征和重要標(biāo)志。用過(guò)UNIX操作系統(tǒng)的讀者知道進(jìn)程,在UNIX操作系統(tǒng)中,每個(gè)應(yīng)用程序的執(zhí)行都在操作系統(tǒng)內(nèi)核中登記一個(gè)進(jìn)程標(biāo)志,操作系統(tǒng)根據(jù)分配的標(biāo)志對(duì)應(yīng)用程序的執(zhí)行進(jìn)行調(diào)度和系統(tǒng)資源分配,但進(jìn)程和線程有什么區(qū)別呢進(jìn)程和線程都是由操作系統(tǒng)所體會(huì)的程序運(yùn)行的基本單元,系統(tǒng)利用該基本單元實(shí)現(xiàn)系統(tǒng)對(duì)應(yīng)用的并發(fā)性。進(jìn)程和線程的區(qū)別在于:線程的劃分尺度小于進(jìn)程,使得多線程程序的并發(fā)性搞。另外,進(jìn)程在執(zhí)行過(guò)程中擁有獨(dú)立的內(nèi)存單元,而多個(gè)線程共享內(nèi)存,從而極大地提高了程序的運(yùn)行效率。線程在執(zhí)行過(guò)程中與進(jìn)程還是有區(qū)別的。每個(gè)獨(dú)立的線程有一個(gè)程序運(yùn)行的入口、順序執(zhí)行序列和程序的出口什么是code-Behind技術(shù)?;顒?dòng)目錄的作用。中讀寫XML的類都?xì)w屬于哪些命名空間解釋一下UDDI、WSDL的意義及其作用。什么是SOAP,有哪些應(yīng)用。答:SOAP(SimpleObjectAccessProtocol)簡(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ǔ)言相互通信。這種相互通信采用的是XML格式的消息,具體請(qǐng)看如何部署一個(gè)頁(yè)面。如何理解中的垃圾回收機(jī)制。常用的調(diào)用webservice方法有哪些與abstraction區(qū)別結(jié)構(gòu)與類有何差異哪些時(shí)候比較適合使用結(jié)構(gòu)和類它們的相同之處:1,兩者都是Container類型,這表示它們可以包含其他數(shù)據(jù)類型作為成員.兩者都擁有成員,這些成員包括:構(gòu)造函數(shù),方法,屬性,字段,常量,枚舉類型,事件,以及事件處理函數(shù)兩者的成員都有其各自的存取范圍.例如,您可以將某一個(gè)成員聲明為Public,而將另外一人成員聲明為Private兩者都可以實(shí)現(xiàn)接口.兩者都可以公開(kāi)一個(gè)默認(rèn)屬性,然而前提是這個(gè)屬性至少要取得一個(gè)自變量.兩者都可以聲明和觸發(fā)事件,而且兩者都可以聲明委托(Delegate).結(jié)構(gòu)與類都可以完全是空的.它們的不同之處如下:結(jié)構(gòu)是實(shí)值類型(ValueTypes),而類是引用類型(RefereneeTypes).結(jié)構(gòu)使用載存儲(chǔ)(StackAllocation),而類使用堆存儲(chǔ)(HeapAllocation).所有結(jié)構(gòu)成員默認(rèn)都是Public,而類的變量與常量數(shù)則默認(rèn)為(Private,不過(guò)其他類成員默認(rèn)都是Public.結(jié)構(gòu)成員國(guó)不能被聲明為Protected,但是類成員可以這樣做.結(jié)構(gòu)變量聲明不能指定初始值,使用new關(guān)鍵字詞或?qū)?shù)組進(jìn)行初始化,但類變量聲明則可以這樣做.結(jié)構(gòu)不能聲明默認(rèn)的構(gòu)造函數(shù),也就是不擁有參數(shù)的非共享構(gòu)造函數(shù),但是類則無(wú)此限制.二者都可以擁有共享構(gòu)造函數(shù),結(jié)構(gòu)的共享構(gòu)造函數(shù)不能帶有參數(shù),但類的共享構(gòu)造函數(shù)則可以帶或者不帶參數(shù).結(jié)構(gòu)不允許聲明析構(gòu)函數(shù)(Destructor),類則無(wú)此限制.結(jié)構(gòu)的實(shí)例(Instanee)聲明,不允許對(duì)包含的變量進(jìn)行初始化設(shè)定,類則可以在聲明類的實(shí)例時(shí),同時(shí)進(jìn)行變量初始化.結(jié)構(gòu)是隱式繼承自ValueType類而且不能繼承任何其它的類型,類則可以繼承來(lái)自ValueType以外的任何類.結(jié)構(gòu)是無(wú)法被繼承的,類則可以被繼承.12,結(jié)構(gòu)永遠(yuǎn)不會(huì)終止,因此CommonLanguageRuntime(CLR)不會(huì)在任何結(jié)構(gòu)上調(diào)用Finalize方法.類則是由內(nèi)存回收進(jìn)程加以終止,當(dāng)內(nèi)存回收進(jìn)程檢測(cè)到?jīng)]有任何作用的類時(shí),它就會(huì)調(diào)用類的Finalize方法.13,結(jié)構(gòu)不需要構(gòu)造函數(shù),類則需要構(gòu)造函數(shù).14,結(jié)構(gòu)只能在一種情況下使用非共享構(gòu)造函數(shù),那就是非共享構(gòu)造函數(shù)會(huì)接收參數(shù):但是類則無(wú)此限制,它可以使用帶參數(shù)或不帶參數(shù)的非共享構(gòu)造函數(shù).15,每一個(gè)結(jié)構(gòu)都具有無(wú)參數(shù)的隱含公共構(gòu)造函數(shù).此構(gòu)造函數(shù)會(huì)將結(jié)構(gòu)的所有成員初始化為基默認(rèn)值.您不能重新定義這個(gè)行為.除了上述的相似處與相異點(diǎn)之外,我們還可以在”實(shí)例與變量”層面上來(lái)探討結(jié)構(gòu)與類.由于結(jié)構(gòu)是數(shù)值類型的,因此每個(gè)結(jié)構(gòu)變量會(huì)永久地綁定到結(jié)構(gòu)實(shí)例上.然而類是引用類型的,而且對(duì)象變量可引用不同的類實(shí)例.在此方面的區(qū)別,會(huì)對(duì)于使用結(jié)構(gòu)與類造成下列影響:結(jié)構(gòu)變量會(huì)隱式地使用結(jié)構(gòu)的無(wú)參數(shù)構(gòu)造函數(shù)來(lái)初始化成員,這就意味著,語(yǔ)句StructlS就等于StructlS二newStructlO;當(dāng)您好將一個(gè)結(jié)構(gòu)變量賦值給另一個(gè),或是將結(jié)構(gòu)實(shí)例傳遞到程序變量時(shí),所有變量成員的值會(huì)復(fù)制到新的結(jié)構(gòu)中.當(dāng)您將一個(gè)對(duì)象變量賦值給另一個(gè),或是將對(duì)象變量傳遞到程序時(shí),則只會(huì)復(fù)制指針.您可以將Null值賦值給結(jié)構(gòu)變量,但是該實(shí)例會(huì)一直與該變量保持關(guān)聯(lián).雖然變量成員會(huì)因此賦值而重新初始化,但是您還是可以調(diào)用變量的方法并訪問(wèn)其數(shù)據(jù)成員.相反地,如果您將對(duì)象變量設(shè)定為Null,您就會(huì)中斷它與任何類實(shí)例的關(guān)聯(lián),而且除非您再將另外一個(gè)實(shí)例賦值給它,否則無(wú)法通過(guò)變量訪問(wèn)任何成員.您可以在不同時(shí)間將不同的類的實(shí)例賦值給同一個(gè)對(duì)象變量,而且在同一時(shí)間可以有好幾個(gè)對(duì)象變量引用相同的類實(shí)例,如果您對(duì)類成員值做了改變,則其它指向相同實(shí)例的對(duì)象變量也會(huì)發(fā)生改變.然而,結(jié)構(gòu)成員則會(huì)封裝在它們自己的實(shí)例中,變更結(jié)構(gòu)成員值并不會(huì)對(duì)其它任何結(jié)構(gòu)變量的成員造成影響,甚至也不會(huì)影響相同Struct聲明的其它實(shí)例.兩個(gè)結(jié)構(gòu)必須以成員對(duì)成員的比較方式來(lái)執(zhí)行相等比較.兩個(gè)對(duì)象變量可以使用Equals方法來(lái)加以比較.Equals會(huì)判斷兩個(gè)變量是否指向相同的實(shí)例.在下列狀況中,比較適合使用結(jié)構(gòu)您擁有少量數(shù)據(jù)而且希望使用會(huì)傳遞的方式來(lái)為變量賦值時(shí).2您會(huì)在每一個(gè)實(shí)例上執(zhí)行大量的操作,而且若使用堆來(lái)管理會(huì)造成性能下降.3,您不需要進(jìn)行繼承,而且不需要實(shí)例有特殊性.您不會(huì)采用Boxing與Unboxing結(jié)構(gòu).您會(huì)在Managed與UnManaged程序代碼之間傳遞Blittable數(shù)據(jù).在下列情況中,比較適合使用類:您需要使用繼承與多態(tài).您需要在創(chuàng)建階段初始化一個(gè)或多個(gè)成員.您需要提供一個(gè)非參數(shù)型的構(gòu)造函數(shù).4,您需要沒(méi)有任何限制的事件處理支持談?wù)勀銓?duì)二維樹的理解如何把一個(gè)array復(fù)制到arrayList里foreach(objectoinarray)(o);可以連接什么數(shù)據(jù)源[dataset,datatable,dataview]dataset,datatable,dataview,IList概述反射和序列化反射:程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對(duì)象。您可以使用反射動(dòng)態(tài)地創(chuàng)建類型的實(shí)例,將類型綁定到現(xiàn)有對(duì)象,或從現(xiàn)有對(duì)象中獲取類型。然后,可以調(diào)用類型的方法或訪問(wèn)其字段和屬性序列化:序列化是將對(duì)象轉(zhuǎn)換為容易傳輸?shù)母袷降倪^(guò)程。例如,可以序列化一個(gè)對(duì)象,然后使用HTTP通過(guò)Internet在客戶端和服務(wù)器之間傳輸該對(duì)象。在另一端,反序列化將從該流重新構(gòu)造對(duì)象。概述o/rmapping的原理利用反射,配置將類于數(shù)據(jù)庫(kù)表映射類成員有()種可訪問(wèn)形式可訪問(wèn)形式不懂。可訪問(wèn)性:public‘protected‘private,internal用sealed修飾的類有什么特點(diǎn)sealed修飾符用于防止從所修飾的類派生出其它類。如果一個(gè)密封類被指定為其他類的基類,則會(huì)發(fā)生編譯時(shí)錯(cuò)誤。密封類不能同時(shí)為抽象類。sealed修飾符主要用于防止非有意的派生,但是它還能促使某些運(yùn)行時(shí)優(yōu)化。具體說(shuō)來(lái),由于密封類永遠(yuǎn)不會(huì)有任何派生類,所以對(duì)密封類的實(shí)例的虛擬函數(shù)成員的調(diào)用可以轉(zhuǎn)換為非虛擬調(diào)用來(lái)處理。#中,stringstr=null與stringstr="",請(qǐng)盡量用文字說(shuō)明區(qū)別。(要點(diǎn):說(shuō)明詳細(xì)的內(nèi)存空間分配)31.概述三層結(jié)構(gòu)體系如何實(shí)現(xiàn)MVC模式,舉例說(shuō)明!33?。net中讀寫數(shù)據(jù)庫(kù)需要用到哪些類他們的作用的身份驗(yàn)證方式有哪些分別是什么原理35.Remoting與webservices區(qū)另U6?C#可否對(duì)內(nèi)存進(jìn)行直接的操作37:您在什么情況下會(huì)用到虛方法它與接口有什么不同38:Override與重載有什么區(qū)別39:值類型與引用類型有什么區(qū)別40:怎樣理解靜態(tài)變量41:向服務(wù)器發(fā)送請(qǐng)求有幾種方式42:DataReader與DataSet有什么區(qū)別43:如果在一個(gè)B/S結(jié)構(gòu)的系統(tǒng)中需要傳遞變量值,但是又不能使用Session、Cookie、Application,您有幾種方法進(jìn)行處理使用這個(gè)方法相比上面介紹的方法稍微復(fù)雜一點(diǎn),但在頁(yè)面間值傳遞中卻是特別有用的,使用該方法你可以在另一個(gè)頁(yè)面以對(duì)象屬性的方式來(lái)存取顯露的值,當(dāng)然了,使用這種方法,你需要額外寫一些代碼以創(chuàng)建一些屬性以便可以在另一個(gè)頁(yè)面訪問(wèn)它,但是,這個(gè)方式帶來(lái)的好處也是顯而易見(jiàn)的??傮w來(lái)說(shuō),使用這種方法是簡(jiǎn)潔的同時(shí)又是面向?qū)ο蟮?。使用這種方法的整個(gè)過(guò)程如下:1,在頁(yè)面里添加必要的控件2,創(chuàng)建返回值的Get屬性過(guò)程3,創(chuàng)建可以返回表單的按鈕和鏈接按鈕在按鈕單擊事件處理程序中調(diào)用方法轉(zhuǎn)移到指定的頁(yè)面在第二個(gè)頁(yè)面中,我們就可以使用屬性來(lái)獲得前一個(gè)頁(yè)面實(shí)例對(duì)象的引用,通過(guò)它,就可以使用存取前一個(gè)頁(yè)面的控件的值了以下代碼綜合實(shí)現(xiàn)上述步驟過(guò)程的代碼:源頁(yè)面代碼:把以下的代碼添加到頁(yè)面中publicstringName{get{return;}}publicstringEMail{get{return;然后調(diào)用方法privatevoidButton1_Click(objectsender,e){("";}目標(biāo)頁(yè)面代碼:privatevoidPage_Load(objectsender,e){oString();or"sum"].ToString();HH~|"sum"];方法3:全局變量發(fā)送頁(yè):Application["sum"]=("";接收頁(yè):HH~|"sum"];Application實(shí)質(zhì)上是整個(gè)虛擬目錄中所有文件的集合,如果想在整個(gè)應(yīng)用范圍內(nèi)使用某個(gè)變量值,Application對(duì)象將是最佳的選擇在這里用Session[""]的方法雷同方法4:發(fā)送頁(yè):定義靜態(tài)變量:publicstaticstringstr="";str=("";接收頁(yè):引入第一頁(yè)的命名空間:usingWebApplication1;244:軟件開(kāi)發(fā)過(guò)程一般有幾個(gè)階段每個(gè)階段的作用45:微軟推出了一系列的ApplicationBlock,請(qǐng)舉出您所知道的ApplicationBlock并說(shuō)明其作用46:請(qǐng)列舉一些您用到過(guò)的設(shè)計(jì)模式以及在什么情況下使用該模式47:您對(duì)WebService的體會(huì)以下幾道題目如果您不會(huì),請(qǐng)較為詳細(xì)的描述您的解決思路和方法48:通過(guò)超鏈接怎樣傳遞中文參數(shù)49:請(qǐng)編程遍歷頁(yè)面上所有TextBox控件并給它賦值為50:請(qǐng)編程實(shí)現(xiàn)一個(gè)冒泡排序算法51.下面這段代碼輸出什么為什么inti=5;intj=5;if(i,j))("Equal");else("NotEqual");52.對(duì)于這樣的一個(gè)枚舉類型:enumColor:byte{Red,Green,Blue,Orange}string[]ss=(typeof(Color));byte[]bb=(typeof(Color));試寫一段程序顯示出枚舉類型中定義的所有符號(hào)名稱以及它們對(duì)應(yīng)的數(shù)值。53.—個(gè)長(zhǎng)度為10000的字符串,通過(guò)隨機(jī)從a-z中抽取10000個(gè)字符組成。請(qǐng)用c#語(yǔ)言編寫主要程序來(lái)實(shí)現(xiàn)。54.在c#中using和new這兩個(gè)關(guān)鍵字有什么意義,請(qǐng)寫出你所知道的意義using指令和語(yǔ)句new創(chuàng)建實(shí)例new隱藏基類中方法55下面這段代碼有錯(cuò)誤么switch(i){case():CaseZero();break;case1:CaseOne();break;case2:dufault;面的代碼中有什么錯(cuò)誤嗎usingSystem;classA{publicvirtualvoidF(){("");}}abstractclassB:A{整數(shù)a整數(shù)a賦值給一個(gè)object對(duì)象時(shí),整數(shù)a將會(huì)被—裝箱(封裝)類成員有種可訪問(wèn)形式this.;newClass().Method;staticconstintA=1;這段代碼有錯(cuò)誤么是什么const不能用static修飾f=-123.567F;inti=(int)f;i的值現(xiàn)在是123利用operator聲明且僅聲明了“二二”,有什么錯(cuò)誤么委托聲明的關(guān)鍵字是delagete用sealed修飾的類有什么特點(diǎn)密封,不能繼承在中所有的自定義用戶控件都必須繼承自Control在.Net中所有可序列化的類都被標(biāo)記為在.Net托管代碼中我們不用擔(dān)心內(nèi)存漏洞,這是因?yàn)橛辛薵c有哪幾種方法可以實(shí)現(xiàn)一個(gè)類存取另外一個(gè)類的成員函數(shù)及屬性,并請(qǐng)舉列來(lái)加以說(shuō)明和分析.如果需記錄類的實(shí)例個(gè)數(shù),該如何實(shí)現(xiàn),請(qǐng)寫一個(gè)簡(jiǎn)單的類于以證明.類是B類的基類,并且都有自己的構(gòu)造,析構(gòu)函數(shù),請(qǐng)舉例證明B類從實(shí)例化到消亡過(guò)程中構(gòu)造,析構(gòu)函數(shù)的執(zhí)行過(guò)程.需要實(shí)現(xiàn)對(duì)一個(gè)字符串的處理,首先將該字符串首尾的空格去掉,如果字符串中間還有連續(xù)空格的話,僅保留一個(gè)空格,即允許字符串中間有多個(gè)空格,但連續(xù)的空格數(shù)不可超過(guò)一個(gè).2、的錯(cuò)誤處理機(jī)制是什么數(shù)據(jù)庫(kù)方面:存儲(chǔ)過(guò)程和函數(shù)的區(qū)別事務(wù)是什么游標(biāo)的作用如何知道游標(biāo)已經(jīng)到了最后觸發(fā)器分為事前觸發(fā)和事后觸發(fā),這兩種觸發(fā)有和區(qū)別。語(yǔ)句級(jí)觸發(fā)和行級(jí)觸發(fā)有何區(qū)別。1。用c#實(shí)現(xiàn)以下功能a產(chǎn)生一個(gè)int數(shù)組,長(zhǎng)度為100,并向其中隨機(jī)插入1-100,并且不能重復(fù)。int[]intArr=newint[100];ArrayListmyList=newArrayList();Randomrnd=newRandom();while<100){intnum=(1,101);if(!(num))(num);}for(inti=0;i<100;i++)intArr[i]=(int)myList[i];b對(duì)上面生成的數(shù)組排序,需要支持升序、降序兩種順序2。請(qǐng)說(shuō)明在中常用的幾種頁(yè)面間傳遞參數(shù)的方法,并說(shuō)出他們的優(yōu)缺點(diǎn)。session(viewstate)簡(jiǎn)單,但易丟失application全局cookie簡(jiǎn)單,但可能不支持,可能被偽造inputttype="hidden"簡(jiǎn)單,可能被偽造url參數(shù)簡(jiǎn)單,顯示于地址欄,長(zhǎng)度有限數(shù)據(jù)庫(kù)穩(wěn)定,安全,但性能相對(duì)弱3。請(qǐng)說(shuō)明中的錯(cuò)誤處理機(jī)制,并舉例trycatchfinal4。請(qǐng)說(shuō)出強(qiáng)名的含義具有自己的key,可以在GAC(全局程序集緩存)為公用5。請(qǐng)列出c#中幾種循環(huán)的方法,并指出他們的不同forwileforeach6。請(qǐng)指出中所有類型的基類object7。請(qǐng)指出GAC的含義8。SQLSREVER中,向一個(gè)表中插入了新數(shù)據(jù),如何快捷的得到自增量字段的當(dāng)前值試卷填空:(1)面向?qū)ο蟮恼Z(yǔ)言具有性、性、性。能用foreach遍歷訪問(wèn)的對(duì)象需要實(shí)現(xiàn)接口或聲明方法的類型。列舉中的五個(gè)主要對(duì)象、Connection,Command,DataReader,DataAdapter,DataSetconnection連接對(duì)象command命令對(duì)象,指示要執(zhí)行的命令和存儲(chǔ)過(guò)程!datareader是一個(gè)向前的只讀的數(shù)據(jù)流。dataadapter是功能強(qiáng)大的適陪器,支持增刪改查的功能dataset是一個(gè)數(shù)據(jù)級(jí)對(duì)象,相當(dāng)與內(nèi)存中的一張表或多張表!不定項(xiàng)選擇:(1)以下敘述正確的是:A.接口中可以有虛方法。B.一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。C.接口不能被實(shí)例化。D.接口中可以包含已實(shí)現(xiàn)的方法。(2)從數(shù)據(jù)庫(kù)讀取記錄,你可能用到的方法有:A.ExecuteNonQueryB.ExecuteScalarC.FillD.ExecuteReader簡(jiǎn)述private、protected、public、internal修飾符的訪問(wèn)權(quán)限。寫出一條Sql語(yǔ)句:取出表A中第31到第40記錄(SQLServer,以自動(dòng)增長(zhǎng)的ID作為主鍵,注意:ID可能不是連續(xù)的。)5.列舉頁(yè)面之間傳遞值的幾種方式。6.寫出程序的輸出結(jié)果classClass1{privatestringstr="";privateinti=0;staticvoidStringConvert(stringstr){str="stringbeingconverted.";}staticvoidStringConvert(Class1c){="stringbeingconverted.";}staticvoidAdd(inti){i++;}i++;}staticvoidAddWithRef(refinti){i++;}staticvoidMain(){inti1=10;inti2=20;stringstr="str";Class1c=newClass1();Add(i1);AddWithRef(refi2);Add;}}ysse|oq.oejq.sqeoi|qnd蚩彩吊麟?會(huì)矣吊亶?上:(丿卜)(.:(乙!)V!)(o)q.J9AuogSu1丿匹i(jq.s)q.J9AuogSui丿匹{{publicA()('A');}publicvirtualvoidFun(){("()");}classB:A}publiclassB:A{publicB()}}}}('B');publicnewvoidFun(){("()");}publicstaticvoidMain(){Aa=newB();();}8.寫出程序的輸出結(jié)果:}}publicclassA{publicvirtualvoidFun1(inti){;}publicvoidFun2(Aa){(1);Fun1(5);}publicclassB:A}}publicoverridevoidFun1(inti){(i+1);}publicstaticvoidMain(){Bb=newB();Aa=newA();(b);(a);一列數(shù)的規(guī)則如下:1、1、2、3、5、8、13、21、34求第30位數(shù)是多少,用遞歸算法實(shí)現(xiàn)。(C#語(yǔ)言)程序設(shè)計(jì):貓大叫一聲,所有的老鼠都開(kāi)始逃跑,主人被驚醒(C#語(yǔ)言)要求:1.要有聯(lián)動(dòng)性,老鼠和主人的行為是被動(dòng)的??紤]可擴(kuò)展性,貓的叫聲可能引起其他聯(lián)動(dòng)效應(yīng)。參考答案:1.(1)繼承性、封裝性、多態(tài)性。(考基本概念)(2)IEnumerable、GetEnumerator(對(duì)foreach機(jī)制的理解,本來(lái)不想出這題的,湊分)(3)...(送分題,對(duì)的了解)評(píng)分標(biāo)準(zhǔn):一空1分,滿分10分。2.(1)B、C(考對(duì)接口的理解)(2)B、C、D(考查對(duì)的熟練程度)評(píng)分標(biāo)準(zhǔn):一題5分,不選或者錯(cuò)選均不得分。漏選得2分。滿分10分。3..private:私有成員,在類的內(nèi)部才可以訪問(wèn)。protected:保護(hù)成員,該類內(nèi)部和繼承類中可以訪問(wèn)。public:公共成員,完全公開(kāi),沒(méi)有訪問(wèn)限制。internal:在同一命名空間內(nèi)可以訪問(wèn)。評(píng)分標(biāo)準(zhǔn):答對(duì)1題2分,2題5分,3題7分。全對(duì)10分。(送分題)解1:selecttop10*fromAwhereidnotin(selecttop30idfromA)解2:selecttop10*fromAwhereid>(selectmax(id)from(selecttop30idfromA)asA)評(píng)分標(biāo)準(zhǔn):寫對(duì)即10分。(答案不唯一,datagrid分頁(yè)可能需要用到)1.使用QueryString,如id=1;response.Redirect。2.使用Session變量使用等等3點(diǎn)10分。評(píng)分標(biāo)準(zhǔn):答對(duì)1點(diǎn)得33點(diǎn)10分。(考查值引用和對(duì)象引用)10210strstringbeingconverted.評(píng)分標(biāo)準(zhǔn):答對(duì)一點(diǎn)得2分,滿分10分。A()評(píng)分標(biāo)準(zhǔn):寫出得5分,寫出()得5分,滿分10分。(考查在繼承類中構(gòu)造函數(shù),以及new方法,)2516評(píng)分標(biāo)準(zhǔn):答對(duì)一點(diǎn)得2分,兩點(diǎn)得5分,3點(diǎn)得7分。全對(duì)得10分。(一些人做這題,頭都暈了二)9.publicclassMainClass{publicstaticvoidMain(){(Foo(30));}publicstaticintFoo(inti){if(i<=0)return0;elseif(i>0&&i<=2)return1;elsereturnFoo(i-1)+Foo(i-2);}}評(píng)分標(biāo)準(zhǔn):寫出returnFoo(iT)+Foo(i-2);得5分。寫出if(i>0&&i〈二2)return1;得5分。方法參數(shù)過(guò)多需要扣分(扣除分?jǐn)?shù)=參數(shù)個(gè)數(shù)-1)不用遞歸算法扣5分(遞歸算法在樹結(jié)構(gòu)建立等方面比較常用)10要點(diǎn):1.聯(lián)動(dòng)效果,運(yùn)行代碼只要執(zhí)行()方法。2.對(duì)老鼠和主人進(jìn)行抽象評(píng)分標(biāo)準(zhǔn):<1>.構(gòu)造出Cat、Mouse、Master三個(gè)類,并能使程序運(yùn)行(2分)<2>從Mouse和Master中提取抽象(5分)<3>聯(lián)動(dòng)效應(yīng),只要執(zhí)行()就可以使老鼠逃跑,主人驚醒。(3分)publicinterfaceObserver{voidResponse();MainpublicdelegatevoidSubEventHandler();{{publicabstractclassSubject{publiceventSubEventHandlerSubEvent;protectedvoidFireAway(){if!=null)();}}publicclassCat:Subject{publicvoidCry()("catcryed.");();}}publicabstractclassObserver{publicObserver(Subjectsub){+=newSubEventHandler(Response);}publicabstractvoidResponse();}publicclassMouse:Observer{{privatestringname;:base(sub):base(sub){=name;}publicoverridevoidResponse(){(name+"attempttoescape!");}}publicclassMaster:ObserverpublicMaster(Subjectsub):base(sub){}publicoverridevoidResponse(){("hostwaken");}}classClass1{staticvoidMain(string[]args){Catcat=newCat();Mousemouse1=newMouse("mouse1",cat);Mousemouse2=newMouse("mouse2",cat);Mastermaster=newMaster(cat);();}}.C#中property與attribute的區(qū)別,他們各有什么用處,這種機(jī)制的好處在哪里一個(gè)是屬性,用于存取類的字段,一個(gè)是特性,用來(lái)標(biāo)識(shí)類,方法等的附加性質(zhì)講一講你理解的webservice,在dotnetframework中,怎么很好的結(jié)合xml(講概念就行了)C#,Java和C++的特點(diǎn),有什么相同的地方,不同的地方,C#分別從C++和java中吸取了他們那些優(yōu)點(diǎn)相同點(diǎn):都是C系的,都是面向?qū)ο蟛煌c(diǎn):Java,C#都是建立在虛擬機(jī)機(jī)制上,而C++不是4.C#可否對(duì)內(nèi)存進(jìn)行直接的操作(這可是個(gè)難點(diǎn)哦要注意?。┛梢杂肰isualC++編寫的代碼(unmanagedcode),如何在CLR下和其他dotnetcomponent結(jié)合以前作過(guò)的一些項(xiàng)目介紹一下自己的編程經(jīng)驗(yàn)。(這是蒙混不過(guò)去的,基本一問(wèn)就知道是真是假)你對(duì)公司有什么期望你的薪水期望值為什么學(xué)計(jì)算機(jī)以前的工作經(jīng)驗(yàn)(這非常重要)Q3:維護(hù)數(shù)據(jù)庫(kù)的完整性、一致性、你喜歡用觸發(fā)器還是自寫業(yè)務(wù)邏輯為什么觸發(fā)器,性能好,事務(wù)性Q4:ADO。NET相對(duì)于ADO等主要有什么改進(jìn)新增dataset等,不需要隨時(shí)保持連接,性能提高Q5:ASP。NET與ASP相比,主要有哪些進(jìn)步asp解釋形,aspx編譯型,性能提高,有利于保護(hù)源碼Q6:C#中的委托是什么事件是不是一種委托委托是一種安全的函數(shù)指針,事件是一種消息機(jī)制、也是委托Q7:描述一下C#中索引器的實(shí)現(xiàn)過(guò)程,是否只能根據(jù)數(shù)字進(jìn)行索引Q8:C#中要使一個(gè)類支持FOREACH遍歷,實(shí)現(xiàn)過(guò)程怎樣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)、作用Q12:接口和抽象類有什么區(qū)別你選擇使用接口和抽象類的依據(jù)是什么

接口用于規(guī)范,抽象類用于共性Q13:自定義控件和一般用戶控件的異同如果要用這兩者之一,你會(huì)選擇哪種為什么Q14:大概描述一下ASP。NET服務(wù)器控件的生命周期Q15:UMLQ16:面向?qū)ο蟮母拍睿饕攸c(diǎn)Q17:類劃分的依據(jù)。類粒度問(wèn)題Q18:事物管理問(wèn)題第一,談?wù)刦inal,finally,finalize的區(qū)別。第二,AnonymousInnerClass(匿名內(nèi)部類)是否可以extends(繼承)其它類,是否可以implements(實(shí)現(xiàn))interface(接口)第三,StaticNestedClass和InnerClass的不同,說(shuō)得越多越好(面試題有的很籠統(tǒng))。第四,&和&&的區(qū)別。第五,HashMap和Hashtable的區(qū)別。第六,Collection和Collections的區(qū)別。第七,什么時(shí)候用assert。第八,GC是什么為什么要有GC第九,Strings=newString("xyz");創(chuàng)建了幾個(gè)StringObject第十,等於多少等於多少第十一,shorts1=1;s1=s1+1有什么錯(cuò)shorts1=1;s1+=1;有什么錯(cuò)第十二,sleep()和wait()有什么區(qū)別第十三,Java有沒(méi)有g(shù)oto第十四,數(shù)組有沒(méi)有l(wèi)ength()這個(gè)方法String有沒(méi)有l(wèi)ength()這個(gè)方法第十五,Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型第十六,Set里的元素是不能重復(fù)的,那么用什么方法來(lái)區(qū)分重復(fù)與否呢是用二二還是equals()它們有何區(qū)別第十七,給我一個(gè)你最常見(jiàn)到的runtimeexception。第十八,error和exception有什么區(qū)另U第十九,List,Set,Map是否繼承自Collection接口第二十,abstractclass和interface有什么區(qū)別第二十一,abstract的method是否可同時(shí)是static,是否可同時(shí)是native,是否可同時(shí)是synchronized第二十二,接口是否可繼承接口抽象類是否可實(shí)現(xiàn)(implements)接口抽象類是否可繼承實(shí)體類(concreteclass)第二十三,啟動(dòng)一個(gè)線程是用run()還是start()第二十四,構(gòu)造器Constructor是否可被override第二十五,是否可以繼承String類第二十六,當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對(duì)象的其它方法第二十七,try{}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally{}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后第二十八,編程題:用最有效率的方法算出2乘以8等於幾第二十九,兩個(gè)對(duì)象值相同(y)==true),但卻可有不同的hashcode,這句話對(duì)不對(duì)第三十,當(dāng)一個(gè)對(duì)象被當(dāng)作參數(shù)傳遞到一個(gè)方法后,此方法可改變這個(gè)對(duì)象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞第三十一,swtich是否能作用在byte上,是否能作用在Iong上,是否能作用在String上第三十二,編程題:寫一個(gè)Singleton出來(lái)。有幾種用法第一種:newClass();第二種:覆蓋方法publicnewXXXX(){}第三種:new約束指定泛型類聲明中的任何類型參數(shù)都必須有公共的無(wú)參數(shù)構(gòu)造函數(shù)。如何把一個(gè)array復(fù)制到arrayList里foreach(objectoinarray)(o);可以連接什么數(shù)據(jù)源[dataset,datatable,dataview]dataset,datatable,dataview,IList4.概述反射和序列化反射:程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對(duì)象。您可以使用反射動(dòng)態(tài)地創(chuàng)建類型的實(shí)例,將類型綁定到現(xiàn)有對(duì)象,或從現(xiàn)有對(duì)象中獲取類型。然后,可以調(diào)用類型的方法或訪問(wèn)其字段和屬性序列化:序列化是將對(duì)象轉(zhuǎn)換為容易傳輸?shù)母袷降倪^(guò)程。例如,可以序列化一個(gè)對(duì)象,然后使用HTTP通過(guò)Internet在客戶端和服務(wù)器之間傳輸該對(duì)象。在另一端,反序列化將從該流重新構(gòu)造對(duì)象。5?概述o/rmapping的原理利用反射,配置將類于數(shù)據(jù)庫(kù)表映射6.類成員有()種可訪問(wèn)形式可訪問(wèn)形式不懂??稍L問(wèn)性:public‘protected‘private,internal7.用sealed修飾的類有什么特點(diǎn)sealed修飾符用于防止從所修飾的類派生出其它類。如果一個(gè)密封類被指定為其他類的基類,則會(huì)發(fā)生編譯時(shí)錯(cuò)誤。

密封類不能同時(shí)為抽象類。sealed修飾符主要用于防止非有意的派生,但是它還能促使某些運(yùn)行時(shí)優(yōu)化。具體說(shuō)來(lái),由于密封類永遠(yuǎn)不會(huì)有任何派生類,所以對(duì)密封類的實(shí)例的虛擬函數(shù)成員的調(diào)用可以轉(zhuǎn)換為非虛擬調(diào)用來(lái)處理。列舉中的五個(gè)主要對(duì)象,并簡(jiǎn)單描述connection,command,dataReader,trans,dataset...執(zhí)行下面代碼后:StringstrTemp二"abcdefg某某某";IntiIntj=;問(wèn):i=(14);j=(11)i=(14);j=(11)中文兩個(gè)字節(jié)#中,stringstr=null與stringstr,請(qǐng)盡量用文字說(shuō)明區(qū)別。(要點(diǎn):說(shuō)明詳細(xì)的內(nèi)存空間分配)stringstr=IfIfstringstr=IfIf分配空間詳述.NET里class和struct的異同!class:放在struct放在?struct值傳遞類與結(jié)構(gòu)有很多相似之處:結(jié)構(gòu)可以實(shí)現(xiàn)接口,并且可以具有與類相同的成員類型。然而,結(jié)構(gòu)在幾個(gè)重要方面不同于類:結(jié)構(gòu)為值類型而不是引用類型,并且結(jié)構(gòu)不支持繼承。結(jié)構(gòu)的值存儲(chǔ)在“在堆棧上”或“內(nèi)聯(lián)”。細(xì)心的程序員有時(shí)可以通過(guò)聰明地使用結(jié)構(gòu)來(lái)增強(qiáng)性能概述.NET里對(duì)remoting和webservice兩項(xiàng)技術(shù)的理解和實(shí)際中的應(yīng)用。遠(yuǎn)程邏輯調(diào)用,remoing接口只能用在中13?什么是code-behind技術(shù)aspxandcs14.概述三層結(jié)構(gòu)體系web/business/dataaccess如何實(shí)現(xiàn)MVC模式,舉例說(shuō)明!web/business/dataaccess1.面向?qū)ο蟮乃枷胫饕ㄊ裁矗看?這個(gè)題范圍太廣,不知道說(shuō)什么.2.什么是中的用戶控件答:用戶控件就是.ascx擴(kuò)展名的東西嘍,可以拖到不同的頁(yè)面中調(diào)用,以節(jié)省代碼.比如登陸可能在多個(gè)頁(yè)面上有,就可以做成用戶控件,但是有一個(gè)問(wèn)題就是用戶控件拖到不同級(jí)別的目錄下后里面的圖片等的相對(duì)路徑會(huì)變得不準(zhǔn)確,需要自已寫方法調(diào)整.什么叫應(yīng)用程序域什么是受管制的代碼什么是強(qiáng)類型系統(tǒng)什么是裝箱和拆箱什么是重載CTS、CLS和CLR分別作何解釋?答:裝箱就是把值類型轉(zhuǎn)成引用類型,從MSIL角度看好像是boxing,沒(méi)記錯(cuò)的話是把值從堆棧轉(zhuǎn)到堆中.拆箱相反,重載就是指一個(gè)方法名同,參數(shù)個(gè)數(shù)不同,返回值可以相同的方法.CLR是通用語(yǔ)言運(yùn)行時(shí),其它的不清楚.列舉一下你所了解的XML技術(shù)及其應(yīng)用答:XML可是好東西,保存配置,站與站之間的交流,WEBSERVICE都要用它.5?值類型和引用類型的區(qū)別寫出C#的樣例代碼。答:結(jié)構(gòu)是值類型,類是引用類型,所以傳結(jié)構(gòu)就是值類型的應(yīng)用啦,傳對(duì)象或類就是引用類型的,這個(gè)不用多寫了吧.中常用的對(duì)象有哪些分別描述一下。答:connectioncommandsqladapterdatasetdatatabledataview等等.寫不完了.7.如何理解委托?答:據(jù)說(shuō)相當(dāng)于函數(shù)指針,定義了委托就可以在不調(diào)用原方法名稱的情況下調(diào)用那個(gè)方法.msdn2005中是這樣解釋的:委托具有以下特點(diǎn):委托類似于C++函數(shù)指針,但它是類型安全的。委托允許將方法作為參數(shù)進(jìn)行傳遞。委托可用于定義回調(diào)方法。委托可以鏈接在一起;例如,可以對(duì)一個(gè)事件調(diào)用多個(gè)方法。方法不需要與委托簽名精確匹配。有關(guān)更多信息,請(qǐng)參見(jiàn)協(xié)變和逆變。C#版引入了匿名方法的概念,此類方法允許將代碼塊作為參數(shù)傳遞,以代替單獨(dú)定義的方法。#中的接口和類有什么異同。答:這個(gè)異同可多了,要說(shuō)清楚還真不容易.9?。net中讀寫數(shù)據(jù)庫(kù)需要用到哪些類他們的作用答:這個(gè)類自已可以寫的啊,你是指基類嗎那configuration,sqlconnection,sqlcommand等都要用到.連接和TCP連接的異同。答:前者只管傳,不管數(shù)據(jù)到不到,無(wú)須建立連接.后者保證傳輸?shù)臄?shù)據(jù)準(zhǔn)確,須要連結(jié).的身份驗(yàn)證方式有哪些分別是什么原理?答form認(rèn)證,windows集成認(rèn)證等,原理不清楚.進(jìn)程和線程分別怎么理解?答:進(jìn)程是老子,線程是兒子,沒(méi)有老子就沒(méi)有兒子,一個(gè)老子可以有多個(gè)兒子.一個(gè)兒子可以成為別人的兒子,一個(gè)老子也可以為別的老子生兒子.什么是code-Behind技術(shù)。答:代碼分離,這是個(gè)明智的東西,像ASP這樣混成一堆很不爽.或者可以理解成HTML代碼寫在前臺(tái),C#代碼寫在后臺(tái).當(dāng)然前臺(tái)也有腳本,類的調(diào)用等,其實(shí)寫在一起也是可以的.活動(dòng)目錄的作用。答:這個(gè)不明白.請(qǐng)明白的補(bǔ)充一下.中讀寫XML的類都?xì)w屬于哪些命名空間?答:我自已寫的就不一定了,嘿嘿.解釋一下UDDI、WSDL的意義及其作用。答:什么東西17?什么是SOAP,有哪些應(yīng)用。答:SOAP(SimpleObjectAccessProtocol)簡(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ǔ)言相互通信。這種相互通信采用的是XML格式的消息,具體請(qǐng)看如何部署一個(gè)頁(yè)面。答:隨便啦,想直接上傳就直接上傳,想打包成EXE就打包,看個(gè)人喜好.如何理解中的垃圾回收機(jī)制。答:GC對(duì)象創(chuàng)建了總要清除啊,不然內(nèi)存哪夠用常用的調(diào)用webservice方法有哪些?答:調(diào)用就調(diào)用,還有很多方法嗎?

以上有答案的僅供參考(不一定正確哦),如果你有更好的答案請(qǐng)回復(fù)告訴我.閱讀:CSDN-164評(píng)文檔中論■?心9參與-.NET評(píng)論

I很久以前的一個(gè)sql面試題及答案.今天突然想起來(lái)很久以前的一個(gè)sql面:題目具體數(shù)據(jù)記不清了,但是大概意思一樣,要求在查詢分表className中有如下分類:classIDclassName衣服510510帽子鞋子表productInfo有如下記錄:77productIDproductNameproductID1服1衣服類別中這條記錄的點(diǎn)擊率最高服1子2子2褲子類別中這條記錄點(diǎn)擊率最高子5子5帽子類別中這條點(diǎn)擊率最高10子類別中這條點(diǎn)擊率最高8子109110現(xiàn)在要求分別把衣服,褲子,帽子,鞋子這些類別中點(diǎn)擊率最productIDproductName1476以下為實(shí)現(xiàn)過(guò)程:/*功能:搜索類別表[className]中的每個(gè)類別下點(diǎn)擊率最高作者:vivianhu整理:kgdiwss(我只是添加了注釋以及重命名了一些變量日期:2006-4-17*//*如果存在臨時(shí)表tTable,則先將它刪除*/ifexists(select*fromwhereid=object_id(N'[dbo].[tTable]')andOBJECT)droptable[dbo].[tTable]GO/*創(chuàng)建臨時(shí)表*/createtabletTable(productidint,productnamevarchar(10),clicknumint/*變量申明*/declare@classIDint/*定義游標(biāo)*/declarecursor_classIDCURSORFORSELECTclassIDFROMclassName/*打開(kāi)游標(biāo)@@FETCH_STATUS返回被FETCH語(yǔ)句執(zhí)行的最后游標(biāo)的狀態(tài),而不是任何0表示FETCH語(yǔ)句成功。*/OPENcursor_classIDFETCHNEXTFROMcursor_classIDINTO@classIDWHILE@@FETCH_STATUS=0/*搜索某一類別中點(diǎn)擊率最高的一條記錄*/BEGINinsertintotTableselecttop1productID,productName,clickNumfrwhereparentID=@classIDorderbyclickNumdescFETCHNEXTFROMcursor_classIDINTO@classIDEND/*關(guān)閉游標(biāo)*/CLOSEcursor_classID/*刪除游標(biāo)引用*/DEALLOCATEcursor_classID/*對(duì)臨時(shí)表中的記錄根據(jù)點(diǎn)擊率進(jìn)行降序排列*/select*fromtTableorderbyclickNumdesc/*刪除臨時(shí)表*/droptabletTable一條語(yǔ)句搞定SELECTproductID,productName,clickNumFROMproductInfoWHERE(convert(varchar(20),parentID)+'_'+convert(varchar(20),clickNum)in(SELECTconvert(varchar(20),parentID)+'_'+convert(varchar(20),MAX(clickNum))FROMproductInfoGROUPBYparentID))C#面試基礎(chǔ)問(wèn)題EnglishVersion:如果你的簡(jiǎn)歷上面寫“熟悉/了解C#”,那么你就應(yīng)該能夠回答下面的這些基礎(chǔ)問(wèn)題。我將給出自己的簡(jiǎn)要答案以供參考。歡迎討論。如果是“精通”,那么請(qǐng)參考:傳入某個(gè)屬性的set方法的隱含參數(shù)的名稱是什么?value,它的類型和屬性所聲名的類型相同。如何在C#中實(shí)現(xiàn)繼承?在類名后加上一個(gè)冒號(hào),再加上基類的名稱。C#支持多重繼承么?不支持??梢杂媒涌趤?lái)實(shí)現(xiàn)。被protected修飾的屬性/方法在何處可以訪問(wèn)?在繼承或間接繼承與這個(gè)類的子類中可以訪問(wèn)。私有成員會(huì)被繼承么?會(huì),但是不能被訪問(wèn)。所以看上去他們似乎是不能被繼承的,但實(shí)際上確實(shí)被繼承了。請(qǐng)描述一下修飾符protectedinternalo被protectedinternal修飾的屬性/方法只能在它的在同一個(gè)程序集(Assembly)中的子類被訪問(wèn)。C#提供一個(gè)默認(rèn)的無(wú)參數(shù)構(gòu)造函數(shù),當(dāng)我實(shí)現(xiàn)了另外一個(gè)有一個(gè)參數(shù)的構(gòu)造函數(shù)時(shí)候,還想保留這個(gè)無(wú)參數(shù)的構(gòu)造函數(shù)。這樣我應(yīng)該寫幾個(gè)構(gòu)造函數(shù)??jī)蓚€(gè),一旦你實(shí)現(xiàn)了一個(gè)構(gòu)造函數(shù),C#就不會(huì)再提供默認(rèn)的構(gòu)造函數(shù)了,所以需要手動(dòng)實(shí)現(xiàn)那個(gè)無(wú)參數(shù)構(gòu)造函數(shù)。C#中所有對(duì)象共同的基類是什么?重載和覆寫有什么區(qū)別?重載提供了對(duì)一個(gè)方法簽名的不同參數(shù)調(diào)用的實(shí)現(xiàn)。覆寫提供了子類中改變父類方法行為的實(shí)現(xiàn)。在方法定義中,virtuaI有什么含意被virtual修飾的方法可以被子類覆寫。能夠?qū)⒎庆o態(tài)的方法覆寫成靜態(tài)方法么?不能,覆寫方法的簽名必須與被覆寫方法的簽名保持一致,除了將virtual改為override??梢愿矊懰接械奶摲椒??不可以,甚至子類中無(wú)法訪問(wèn)父類中的私有方法。能夠阻止某一個(gè)類被其他類繼承么可以,使用關(guān)鍵字sealed。能夠?qū)崿F(xiàn)允許某個(gè)類被繼承,但不允許其中的某個(gè)方法被覆寫么可以,標(biāo)記這個(gè)類為public,并標(biāo)記這個(gè)方法為sealedo什么是抽象類(abstractclass)?一種不可以被實(shí)例化的類。抽象類中一般含有抽象方法,當(dāng)然也可有具體實(shí)現(xiàn)。繼承類只有實(shí)現(xiàn)過(guò)所有抽象類的抽象方法后才能被實(shí)例化。仏何時(shí)必須聲明一個(gè)類為抽象類當(dāng)這個(gè)類中包含抽象方法時(shí),或是該類并沒(méi)有完全實(shí)現(xiàn)父類的抽象方法時(shí)。接口(interface)是什么?只含有共有抽象方法(publicabstractmethod)的類。這些方法必須在子類中被實(shí)現(xiàn)。為什么不能指定接口中方法的修飾符接口中的方法用來(lái)定義對(duì)象之間通信的契約,指定接口中的方法為私有或保護(hù)沒(méi)有意義。他們默認(rèn)為公有方法??梢岳^承多個(gè)接口么當(dāng)然。那么如果這些接口中有重復(fù)的方法名稱呢這種情況中你可以決定如何實(shí)現(xiàn)。當(dāng)然需要特別得小心。但是在編譯環(huán)節(jié)是沒(méi)有問(wèn)題的。接口和抽象類的區(qū)別是什么接口中所有方法必須是抽象的,并且不能指定方法的訪問(wèn)修飾符。抽象類中可以有方法的實(shí)現(xiàn),也可以指定方法的訪問(wèn)修飾符。如何區(qū)別重載方法不同的參數(shù)類型,不同的參數(shù)個(gè)數(shù),不同的參數(shù)順序。const和readonly有什么區(qū)別?const關(guān)鍵字用來(lái)聲明編譯時(shí)常量,readonly用來(lái)聲明運(yùn)行時(shí)常量。和有什么區(qū)別?是不可變的字符串。存放了一個(gè)可變的字符串,并提供一些對(duì)這個(gè)字符串修改的方法。本貼子以“現(xiàn)狀”提供且沒(méi)有任何擔(dān)保,同時(shí)也沒(méi)有授予任何權(quán)利Thispostingisprovided"ASIS"withnowarranties,andconfersnorights?postedon2006-04-0120:36DflyingChen閱讀(6522)評(píng)論(41)編輯收藏引用網(wǎng)摘所屬分類:.NET綜合、C#評(píng)論:#re:C#面試基礎(chǔ)問(wèn)題2006-04-0214:35|PhoenixHuang90%是面向?qū)ο笤O(shè)計(jì)的問(wèn)題?;貜?fù)更多評(píng)論#re:C#面試基礎(chǔ)問(wèn)題2006-04-0214:48|DflyingChen@PhoenixHuang是的,當(dāng)然這些也考察了C#的語(yǔ)言基礎(chǔ)。回復(fù)更多評(píng)論#re:C#面試基礎(chǔ)問(wèn)題2006-04-0217:15|林子不錯(cuò)!不過(guò)如果答案如果能再00—些那就現(xiàn)好了!回復(fù)更多評(píng)論re:C#面試基礎(chǔ)問(wèn)題2006-04-0218:29|DflyingChen@林子歡迎您提出修改的建議:)回復(fù)更多評(píng)論re:C#面試基礎(chǔ)問(wèn)題2006-04-0222:41|裝配腦袋有幾道題的答案錯(cuò)誤,列出來(lái)供你面試時(shí)參考:3C#支持多重繼承么答案是類之間不支持,接口之間支持。類對(duì)接口叫做實(shí)現(xiàn),不叫繼承。6請(qǐng)描述一下修飾符protectedinternal。正確答案是,在同一個(gè)Assembly中,他的訪問(wèn)級(jí)別和public—樣,而跨Assembly訪問(wèn)時(shí),他的訪問(wèn)級(jí)別同protected一樣。即protected的范圍+internal的范圍。11能夠?qū)⒎庆o態(tài)的方法覆寫成靜態(tài)方法么答案并沒(méi)有大錯(cuò),只是靜態(tài)方法根本無(wú)override概念,屬于引起困惑的問(wèn)題13能夠阻止某一個(gè)類被其他類繼承么答案沒(méi)錯(cuò),但是如果應(yīng)試者提到將所有構(gòu)造函數(shù)的訪問(wèn)級(jí)別都設(shè)為Private或子類無(wú)法訪問(wèn)到的其他級(jí)別(Assembly外的internal),也有同樣的效果。14能夠?qū)崿F(xiàn)允許某個(gè)類被繼承,但不允許其中的某個(gè)方法被覆寫么同樣是可能引起困惑的題。因?yàn)槟J(rèn)(不帶virtual)的方法就是不能被override的。帶sealed的方法必定是被override過(guò)的。20接口和抽象類的區(qū)別是什么還有一個(gè)容易被忽視的區(qū)別,C#不允許接口帶有靜態(tài)成員,盡管這不是.NET的限制。23const和readonly有什么區(qū)別還有一些區(qū)別,當(dāng)應(yīng)試者提到時(shí)你不能說(shuō)是錯(cuò)的:作字段時(shí)const隱含靜態(tài),const可以是局部的,readonly可以在構(gòu)造函數(shù)中初始化等?;貜?fù)更多評(píng)論#re:C#面試基礎(chǔ)問(wèn)題2006-04-0309:32|DflyingChen@裝配腦袋3C#支持多重繼承么一答案是類之間不支持,接口之間支持。類對(duì)接口叫做實(shí)現(xiàn),不叫繼承。inheritaninterface沒(méi)有什么不妥,為什么中文就不可以6請(qǐng)描述一下修飾符protectedinternal。--正確答案是,在同一個(gè)Assembly中,他的訪問(wèn)級(jí)別和public一樣,而跨Assembly訪問(wèn)時(shí),他的訪問(wèn)級(jí)別同protected一樣。即protected的范圍+internal的范圍。同一個(gè)Assembly中依然是protected,您可以查閱一下相關(guān)資料。11能夠?qū)⒎庆o態(tài)的方法覆寫成靜態(tài)方法么--答案并沒(méi)有大錯(cuò),只是靜態(tài)方法根本無(wú)override概念,屬于引起困惑的問(wèn)題我只是問(wèn)“能覆寫成”么如果她知道靜態(tài)方法根本無(wú)override概念,顯然可以打出這個(gè)問(wèn)題。13能夠阻止某一個(gè)類被其他類繼承么—答案沒(méi)錯(cuò),但是如果應(yīng)試者提到將所有構(gòu)造函數(shù)的訪問(wèn)級(jí)別都設(shè)為Private或子類無(wú)法訪問(wèn)到的其他級(jí)別(Assembly外的internal),也有同樣的效果。您說(shuō)的對(duì),但如果這樣思路想下來(lái),我還可以說(shuō)用C++寫父類不能讓C#繼承。不要太鉆牛角尖了。14能夠?qū)崿F(xiàn)允許某個(gè)類被繼承,但不允許其中的某個(gè)方法被覆寫么一同樣是可能引起困惑的題。因?yàn)槟J(rèn)(不帶virtual)的方法就是不能被override的。帶sealed的方法必定是被override過(guò)的。這個(gè)答案有理。20接口和抽象類的區(qū)別是什么一還有一個(gè)容易被忽視的區(qū)別,C#不允許接口帶有靜態(tài)成員,盡管這不是.NET的限制。有道理,但接口不可以有成員吧,不管靜態(tài)還是非靜態(tài)的23const和readonly有什么區(qū)別--還有一些區(qū)別,當(dāng)應(yīng)試者提到時(shí)你不能說(shuō)是錯(cuò)的:作字段時(shí)const隱含靜態(tài),const可以是局部的,readonly可以在構(gòu)造函數(shù)中初始化等。我不是很明白你的意思。但我覺(jué)得回答出“const關(guān)鍵字用來(lái)聲明編譯時(shí)常量,readonly用來(lái)聲明運(yùn)行時(shí)常量?!币呀?jīng)足夠完美了?;貜?fù)更多評(píng)論#re:C#面試基礎(chǔ)問(wèn)題2006-04-0309:44|裝配腦袋第六題你錯(cuò)了,不要堅(jiān)持錯(cuò)誤好嗎去試一下就什么都知道了。只有C++/CLI才支持你描述的那種訪問(wèn)級(jí)別,internalANDprotected.第十三題,我并非鉆牛角尖,我恰好用到了這種手法。我需要一個(gè)抽象基類作為我的泛型類型字典,為了模擬type-traits我要求我的繼承體系內(nèi)類的數(shù)量有限而且對(duì)外隱藏。所以我就需要一個(gè)具有internal構(gòu)造函數(shù)的抽象類,只有我自己的代碼可以繼承他,外部的不可以。你也許不能理解為什么這樣做,但是它工作得很好?;貜?fù)更多評(píng)論re:C#面試基礎(chǔ)問(wèn)題2006-04-0309:50|裝配腦袋第二十題,成員函數(shù)也叫成員。這很重要,因?yàn)閛peratoroverloading的過(guò)程是靜態(tài)的。第二十三題,const可以用于局部常量,而readonly,實(shí)際是類的initonly字段,顯然不能是局部的?;貜?fù)更多評(píng)論re:C#面試基礎(chǔ)問(wèn)題2006-04-0310:02|裝配腦袋如果我是參加面試的人,你會(huì)對(duì)我有何感想我真的不是鉆牛角尖,我每一個(gè)質(zhì)疑,都是我以我的真實(shí)程序?yàn)橐罁?jù)的,你忽視的地方并不是我恰好關(guān)注的地方,而是我一開(kāi)始就關(guān)注的?;貜?fù)更多評(píng)論re:C#面試基礎(chǔ)問(wèn)題2006-04-0310:20|DflyingChen@裝配腦袋第六題是我錯(cuò)了,感謝指正.第十三題我明白你的意思,只是我感覺(jué)答出來(lái)sealed就夠了。第二十題,我不知道成員函數(shù)也叫成員,一直用方法(method)來(lái)表示。成員函數(shù)是memberfunction么回復(fù)更多評(píng)論re:C#面試基礎(chǔ)問(wèn)題2006-04-0310:21|DflyingChen@裝配腦袋你忽視的地方并不是我恰好關(guān)注的地方,而是我一開(kāi)始就關(guān)注的。這句話什么意思回復(fù)更多評(píng)論re:C#面試基礎(chǔ)問(wèn)題2006-04-0310:24|裝配腦袋就是說(shuō),我并不是為了挑你的錯(cuò)而想這么深的,而是一開(kāi)始

溫馨提示

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