2023年C#求職C#面試題_第1頁
2023年C#求職C#面試題_第2頁
2023年C#求職C#面試題_第3頁
2023年C#求職C#面試題_第4頁
2023年C#求職C#面試題_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGE1.您在什么情況下會(huì)用到虛方法?它與接口有什么不同?需要實(shí)現(xiàn)多態(tài)的情況下會(huì)用到虛方法!虛方法中可以有具體的實(shí)現(xiàn)代碼,接口中則只是方法的定義!2.override與重載有什么區(qū)別?重寫就是對(duì)虛方法的實(shí)現(xiàn),重載是相同的方法名,不同的參數(shù)列表!3.值類型與引用類型有什么區(qū)別?參數(shù)傳遞的時(shí)候值類型傳遞副本,當(dāng)值改變,不會(huì)影響源數(shù)據(jù)。引用傳遞一個(gè)地址的引用,當(dāng)值改變,影響源數(shù)據(jù)!4.怎樣理解靜態(tài)變量?定義于類這個(gè)層次,被類的所有實(shí)例共享。5.向服務(wù)器發(fā)送請(qǐng)求有幾種方式?post,get6.datareader與dataset有什么區(qū)別?只讀,高效,連接!雙向,比DataReader低效,非連接!7.如果在一個(gè)b/s結(jié)構(gòu)的系統(tǒng)中需要傳遞變量值,但是又不能使用session、cookie、application,您有幾種方法進(jìn)行處理? url,server.transfer,cache8.:用.net做b/s結(jié)構(gòu)的系統(tǒng),您是用幾層結(jié)構(gòu)來開發(fā),每一層之間的關(guān)系以及為什么要這樣分層?3層9.:軟件開發(fā)過程一般有幾個(gè)階段?每個(gè)階段的作用?需求分析,計(jì)劃,設(shè)計(jì)開發(fā),測(cè)試,部署10:微軟推出了一系列的applicationBlock,請(qǐng)舉出您所知道的ApplicationBlock并說明其作用?那是一些微軟做的開源的公共組件DataAccessAB:數(shù)據(jù)訪問UserInterfaceProcessAB:構(gòu)建MVC界面層完整列表參看:/library/en-us/dnpag2/html/entlib.asp11:請(qǐng)列舉一些您用到過的設(shè)計(jì)模式以及在什么情況下使用該模式?通過Soap協(xié)議調(diào)用方法12:您對(duì)webService的體會(huì)?13:您對(duì)編程的興趣如何?工作中遇到不懂的問題是怎樣去解決的?您一般怎樣去提高自己的編程水平?興趣很高;查MSDN、在Google上搜索、與同事溝通;看書、實(shí)踐14:您離職的原因是什么?以下幾道題目如果您不會(huì),請(qǐng)較為詳細(xì)的描述您的解決思路和方法15:通過超鏈接怎樣傳遞中文參數(shù)?url傳遞中文的解決方案

1.設(shè)置web.config文件。(我不喜歡設(shè)置成這樣)

<system.web>

…...

<globalizationrequestEncoding=”gb2312”responseEncoding=”gb2312”culture=”zh-CN”fileEncoding=”gb2312”/>

…...

</system.web>

2.傳遞中文之前,將要傳遞的中文參數(shù)進(jìn)行編碼,在接收時(shí)再進(jìn)行解碼。

>>進(jìn)行傳遞

stringName=“中文參數(shù)”;

Response.Redirect(“B.aspx?Name=”+Server.UrlEncode(Name));

>>進(jìn)行接收

stringName=Request.QueryString[“Name”];

Response.Write(Server.UrlDecode(Name));16:請(qǐng)編程遍歷頁面上所有textbox控件并給它賦值為string.empty?for(inti=0;i<Page.Controls.Count;i++) { foreach(System.Web.UI.Controlcontrolinthis.Page.Controls[i].Controls) { if(controlisTextBox) { (controlasTextBox).Text=string.Empty; } } }17:請(qǐng)編程實(shí)現(xiàn)一個(gè)冒泡排序算法?1、C#中property與attribute的區(qū)別,他們各有什么用處,這種機(jī)制的好處在哪里?

property和attribute漢語都稱之為屬性。不過property是指類向外提供的數(shù)據(jù)區(qū)域。而attribute則是描述對(duì)象在編譯時(shí)或運(yùn)行時(shí)屬性的。這兩者是有本質(zhì)區(qū)別的。2、講一講你理解的webservice,在dotnetframework中,怎么很好的結(jié)合xml?(講概念就行了)

從表面上看,WebService就是一個(gè)應(yīng)用程序,它向外界暴露出一個(gè)能夠通過Web進(jìn)行調(diào)用的API。這就是說,你能夠用編程的方法通過Web調(diào)用來實(shí)現(xiàn)某個(gè)功能的應(yīng)用程序。從深層次上看,WebService是一種新的Web應(yīng)用程序分支,它們是自包含、自描述、模塊化的應(yīng)用,可以在網(wǎng)絡(luò)(通常為Web)中被描述、發(fā)布、查找以及通過Web來調(diào)用??蓴U(kuò)展的標(biāo)記語言XML是WebService平臺(tái)中表示數(shù)據(jù)的基本格式。除了易于建立和易于分析外,XML主要的優(yōu)點(diǎn)在于它既與平臺(tái)無關(guān),又與廠商無關(guān)。XML是由萬維網(wǎng)協(xié)會(huì)(W3C)創(chuàng)建,W3C制定的XMLSchemaXSD定義了一套標(biāo)準(zhǔn)的數(shù)據(jù)類型,并給出了一種語言來擴(kuò)展這套數(shù)據(jù)類型。WebService平臺(tái)是用XSD來作為數(shù)據(jù)類型系統(tǒng)的。當(dāng)你用某種語言如VB.NET或C#來構(gòu)造一個(gè)WebService時(shí),為了符合WebService標(biāo)準(zhǔn),所有你使用的數(shù)據(jù)類型都必須被轉(zhuǎn)換為XSD類型。如想讓它使用在不同平臺(tái)和不同軟件的不同組織間傳遞,還需要用某種東西將它包裝起來。這種東西就是一種協(xié)議,如SOAP。

3.C#,Java和c++的特點(diǎn),有什么相同的地方,不同的地方,C#分別從c++和java中吸取了他們那些優(yōu)點(diǎn)?

C#看起來與Java有著驚人的相似;它包括了諸如單一繼承,界面,與Java幾乎同樣的語法,和編譯成中間代碼再運(yùn)行的過程.但是C#與Java有著明顯的不同,它借鑒了Delphi的一個(gè)特點(diǎn),與COM(組件對(duì)象模型)是直接集成。

微軟c#語言定義主要是從C和C++繼承而來的,而且語言中的許多元素也反映了這一點(diǎn).C#在設(shè)計(jì)者從C++繼承的可選選項(xiàng)方面比Java要廣泛一些(比如說structs),它還增加了自己新的特點(diǎn)(比方說源代碼版本定義).

C#從Java繼承而來的特點(diǎn)

類:在C#中類的申明與Java很相似。特點(diǎn)看起來與Java相比沒有變化.布爾運(yùn)算:條件表達(dá)式的結(jié)果是布爾數(shù)據(jù)類型,布爾數(shù)據(jù)類型是這種語言中獨(dú)立的一種數(shù)據(jù)類型.從布爾類型到其他類型沒有直接的轉(zhuǎn)換過程.布爾常量true和false是C#中的關(guān)鍵字.錯(cuò)誤處理:如Java中那樣,通過拋出和捕捉異常對(duì)象來管理錯(cuò)誤處理過程.內(nèi)存管理:由底層.NET框架進(jìn)行自動(dòng)內(nèi)存垃圾回收.

C#從C和C++繼承的特點(diǎn)

編譯:程序直接編譯成標(biāo)準(zhǔn)的二進(jìn)制可執(zhí)行形式.結(jié)構(gòu)體:一個(gè)C#的結(jié)構(gòu)體與C++的結(jié)構(gòu)體是相似的,因?yàn)樗軌虬瑪?shù)據(jù)申明和方法.但是,不象C++,C#結(jié)構(gòu)體與類是不同的而且不支持繼承.但是,與Java相同的是,一個(gè)結(jié)構(gòu)體可以實(shí)現(xiàn)界面.

預(yù)編譯:C#中存在預(yù)編譯指令支持條件編譯,警告,錯(cuò)誤報(bào)告和編譯行控制.#error

C#獨(dú)有的特點(diǎn)

中間代碼:微軟在用戶選擇何時(shí)MSIL應(yīng)該編譯成機(jī)器碼的時(shí)候是留了很大的余地.微軟公司很小心的聲稱MSIL不是解釋性的,而是被編譯成了機(jī)器碼.它也明白許多--如果不是大多數(shù)的話--程序員認(rèn)為Java程序要不可避免的比C編寫的任何東西都要慢.而這種實(shí)現(xiàn)方式?jīng)Q定了基于MSIL的程序(指的是用C#,VisualBasic,"ManagedC++"--C++的一個(gè)符合CLS的版本--等語言編寫的程序)將在性能上超過"解釋性的"Java代碼.當(dāng)然,這一點(diǎn)還需要得到事實(shí)證明,因?yàn)镃#和其他生成MSIL的編譯器還沒有發(fā)布.但是JavaJIT編譯器的普遍存在使得Java和C#在性能上相對(duì)相同,象"C#是編譯語言而Java是解釋性的,"之類的聲明只是商業(yè)技巧.Java的中間代碼和MSIL都是中間的匯編形式的語言,它們?cè)谶\(yùn)行時(shí)或其它的時(shí)候被編譯成機(jī)器代碼.命名空間中的申明:當(dāng)你創(chuàng)建一個(gè)程序的時(shí)候,你在一個(gè)命名空間里創(chuàng)建了一個(gè)或多個(gè)類.同在這個(gè)命名空間里(在類的外面)你還有可能聲明界面,枚舉類型和結(jié)構(gòu)體.必須使用using關(guān)鍵字來引用其他命名空間的內(nèi)容.

基本的數(shù)據(jù)類型:C#擁有比C,C++或者Java更廣泛的數(shù)據(jù)類型.這些類型是bool,byte,ubyte,short,ushort,int,uint,long,ulong,float,double,和decimal.象Java一樣,所有這些類型都有一個(gè)固定的大小.又象C和C++一樣,每個(gè)數(shù)據(jù)類型都有有符號(hào)和無符號(hào)兩種類型.與Java相同的是,一個(gè)字符變量包含的是一個(gè)16位的Unicode字符.C#新的數(shù)據(jù)類型是decimal數(shù)據(jù)類型,對(duì)于貨幣數(shù)據(jù),它能存放28位10進(jìn)制數(shù)字.

兩個(gè)基本類:一個(gè)名叫object的類是所有其他類的基類.而一個(gè)名叫string的類也象object一樣是這個(gè)語言的一部分.作為語言的一部分存在意味著編譯器有可能使用它--無論何時(shí)你在程序中寫入一句帶引號(hào)的字符串,編譯器會(huì)創(chuàng)建一個(gè)string對(duì)象來保存它.

參數(shù)傳遞:方法可以被聲明接受可變數(shù)目的參數(shù).缺省的參數(shù)傳遞方法是對(duì)基本數(shù)據(jù)類型進(jìn)行值傳遞.ref關(guān)鍵字可以用來強(qiáng)迫一個(gè)變量通過引用傳遞,這使得一個(gè)變量可以接受一個(gè)返回值.out關(guān)鍵字也能聲明引用傳遞過程,與ref不同的地方是,它指明這個(gè)參數(shù)并不需要初始值.

與COM的集成:C#對(duì)Windows程序最大的賣點(diǎn)可能就是它與COM的無縫集成了,COM就是微軟的Win32組件技術(shù).實(shí)際上,最終有可能在任何.NET語言里編寫COM客戶和服務(wù)器端.C#編寫的類可以子類化一個(gè)以存在的COM組件;生成的類也能被作為一個(gè)COM組件使用,然后又能使用,比方說,JScript語言子類化它從而得到第三個(gè)COM組件.這種現(xiàn)象的結(jié)果是導(dǎo)致了一個(gè)運(yùn)行環(huán)境的產(chǎn)生,在這個(gè)環(huán)境里的組件是網(wǎng)絡(luò)服務(wù),可用用任何.NET語言子類化.

索引下標(biāo):一個(gè)索引與屬性除了不使用屬性名來引用類成員而是用一個(gè)方括號(hào)中的數(shù)字來匿名引用(就象用數(shù)組下標(biāo)一樣)以外是相似的.

代理和反饋:一個(gè)代理對(duì)象包括了訪問一個(gè)特定對(duì)象的特定方法所需的信息.只要把它當(dāng)成一個(gè)聰明的方法指針就行了.代理對(duì)象可以被移動(dòng)到另一個(gè)地方,然后可以通過訪問它來對(duì)已存在的方法進(jìn)行類型安全的調(diào)用.一個(gè)反饋方法是代理的特例.event關(guān)鍵字用在將在事件發(fā)生的時(shí)候被當(dāng)成代理調(diào)用的方法聲明中.4、C#中的委托是什么?事件是不是一種委托?委托是一個(gè)可以對(duì)方法進(jìn)行引用的類。與其他的類不同,委托類具有一個(gè)簽名,并且它只能對(duì)與其簽名匹配的方法進(jìn)行引用。這樣,委托就等效于一個(gè)類型安全函數(shù)指針或一個(gè)回調(diào)。事件是一種委托。5、ADO.NET相對(duì)于ADO等主要有什么改進(jìn)?ADO以Recordset存儲(chǔ),而ADO.NET則以DataSet表示。Recordset看起來更像單表,如果讓Recordset以多表的方式表示就必須在SQL中進(jìn)行多表連接。反之,DataSet可以是多個(gè)表的集合。ADO的運(yùn)作是一種在線方式,這意味著不論是瀏覽或更新數(shù)據(jù)都必須是實(shí)時(shí)的。ADO.NET則使用離線方式,在訪問數(shù)據(jù)的時(shí)候ADO.NET會(huì)利用XML制作數(shù)據(jù)的一份幅本,ADO.NET的數(shù)據(jù)庫連接也只有在這段時(shí)間需要在線。由于ADO使用COM技術(shù),這就要求所使用的數(shù)據(jù)類型必須符合COM規(guī)范,而ADO.NET基于XML格式,數(shù)據(jù)類型更為豐富并且不需要再做COM編排導(dǎo)致的數(shù)據(jù)類型轉(zhuǎn)換,從而提高了整體性能。6、接口和抽象類有什么區(qū)別?你選擇使用接口和抽象類的依據(jù)是什么?

接口是一個(gè)純粹的抽象類,沒有任何實(shí)際的東西,只是定義了一個(gè)框架,而抽象類里面可以有實(shí)際的一個(gè)方法,并不要求所有的方法都是抽象的??梢詫?shí)現(xiàn)一個(gè)接口中的所有方法,也可以繼承一個(gè)抽象的類,然后覆寫其中的方法。接口一般只有方法,而沒有數(shù)據(jù)成員或?qū)傩?。抽象類有方法,也有?shù)據(jù)成員或?qū)傩?一般情況下,優(yōu)先考慮用接口,只有當(dāng)可能要訪問到數(shù)據(jù)成員或?qū)傩詴r(shí),用抽象類。

7、談?wù)刦inal,finally,finalize的區(qū)別。final修飾符用于指定類不能擴(kuò)展或者方法或?qū)傩圆荒苤貙?。它將防止其他類通過重寫重要的函數(shù)來更改該類的行為。帶有final修飾符的方法可以由派生類中的方法來隱藏或重載。final

溫馨提示

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