- 相關(guān)推薦
常見.net面試題及答案
1、ADO.NET中的五個(gè)主要對(duì)象
Connection:主要是開啟程序和數(shù)據(jù)庫(kù)之間的連結(jié)。沒(méi)有利用連結(jié)對(duì)象將數(shù)據(jù)庫(kù)打開,是無(wú)法從數(shù)據(jù)庫(kù)中取得數(shù)據(jù)的。這個(gè)物件在ADO.NET 的最底層,我們可以自己產(chǎn)生這個(gè)對(duì)象,或是由其它的對(duì)象自動(dòng)產(chǎn)生。
Command:主要可以用來(lái)對(duì)數(shù)據(jù)庫(kù)發(fā)出一些指令,例如可以對(duì)數(shù)據(jù)庫(kù)下達(dá)查詢、新增、修改、刪除數(shù)據(jù)等指令,以及呼叫存在數(shù)據(jù)庫(kù)中的預(yù)存程序等。這個(gè)對(duì)象是架構(gòu)在Connection 對(duì)象上,也就是Command 對(duì)象是透過(guò)連結(jié)到數(shù)據(jù)源。
DataAdapter:主要是在數(shù)據(jù)源以及DataSet 之間執(zhí)行數(shù)據(jù)傳輸?shù)墓ぷ鳎梢酝高^(guò)Command 對(duì)象下達(dá)命令后,并將取得的數(shù)據(jù)放入DataSet 對(duì)象中。這個(gè)對(duì)象是架構(gòu)在Command對(duì)象上,并提供了許多配合DataSet 使用的功能。
DataSet:這個(gè)對(duì)象可以視為一個(gè)暫存區(qū)(Cache),可以把從數(shù)據(jù)庫(kù)中所查詢到的數(shù)據(jù)保留起來(lái),甚至可以將整個(gè)數(shù)據(jù)庫(kù)顯示出來(lái)。DataSet 的能力不只是可以儲(chǔ)存多個(gè)Table 而已,還可以透過(guò)DataAdapter對(duì)象取得一些例如主鍵等的數(shù)據(jù)表結(jié)構(gòu),并可以記錄數(shù)據(jù)表間的關(guān)聯(lián)。DataSet 對(duì)象可以說(shuō)是ADO.NET 中重量級(jí)的對(duì)象,這個(gè)對(duì)象架構(gòu)在DataAdapter對(duì)象上,本身不具備和數(shù)據(jù)源溝通的能力;也就是說(shuō)我們是將DataAdapter對(duì)象當(dāng)做DataSet 對(duì)象以及數(shù)據(jù)源間傳輸數(shù)據(jù)的橋梁。
DataReader:當(dāng)我們只需要循序的讀取數(shù)據(jù)而不需要其它操作時(shí),可以使用DataReader 對(duì)象。DataReader對(duì)象只是一次一筆向下循序的讀取數(shù)據(jù)源中的數(shù)據(jù),而且這些數(shù)據(jù)是只讀的,并不允許作其它的操作。因?yàn)镈ataReader 在讀取數(shù)據(jù)的時(shí)候限制了每次只讀取一筆,而且只能只讀,所以使用起來(lái)不但節(jié)省資源而且效率很好。使用DataReader 對(duì)象除了效率較好之外,因?yàn)椴挥冒褦?shù)據(jù)全部傳回,故可以降低網(wǎng)絡(luò)的負(fù)載。
ADO.NET 使用Connection 對(duì)象來(lái)連接數(shù)據(jù)庫(kù),使用Command 或DataAdapter對(duì)象來(lái)執(zhí)行SQL語(yǔ)句,并將執(zhí)行的結(jié)果返回給DataReader 或 DataAdapter ,然后再使用取得的DataReader 或DataAdapter 對(duì)象操作數(shù)據(jù)結(jié)果。
2、列舉ASP.NET 頁(yè)面之間傳遞值的幾種方式。
1.使用QueryString, 如....?id=1; response. Redirect()....
2.使用Session變量
3.使用Server.Transfer
4.Cookie傳值
5.Application傳值
3、C#中的委托是什么?事件是不是一種委托?
委托可以把一個(gè)方法作為參數(shù)代入另一個(gè)方法。
委托可以理解為指向一個(gè)函數(shù)的引用。
是,是一種特殊的委托。
4、override與重載的區(qū)別
重載是方法的名稱相同。參數(shù)或參數(shù)類型不同,進(jìn)行多次重載以適應(yīng)不同的需要
Override 是進(jìn)行基類中函數(shù)的重寫。為了適應(yīng)需要。
5、三層架構(gòu)通
常意義上的三層架構(gòu)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問(wèn)層(DAL)。
區(qū)分層次的目的即為了“高內(nèi)聚,低耦合”的思想。
表現(xiàn)層(UI):通俗講就是展現(xiàn)給用戶的界面,即用戶在使用一個(gè)系統(tǒng)的時(shí)候的所見所得。
業(yè)務(wù)邏輯層(BLL):針對(duì)具體問(wèn)題的操作,也可以說(shuō)是對(duì)數(shù)據(jù)層的操作,對(duì)數(shù)據(jù)業(yè)務(wù)邏輯處理。
數(shù)據(jù)訪問(wèn)層(DAL):該層所做事務(wù)直接操作數(shù)據(jù)庫(kù),針對(duì)數(shù)據(jù)的增添、刪除、修改、更新、查找等每層之間是一種垂直的關(guān)系。
三層結(jié)構(gòu)是N層結(jié)構(gòu)的一種,一般來(lái)說(shuō),層次之間是向下依賴的,下層代碼未確定其接口(契約)前,上層代碼是無(wú)法開發(fā)的,下層代碼接口(契約)的變化將使上層的代碼一起變化。
優(yōu)點(diǎn): 分工明確,條理清晰,易于調(diào)試,而且具有可擴(kuò)展性。
缺點(diǎn): 增加成本。
6、MVC模式
MVC(Model View Controller)模型-視圖-控制器
MVC是典型的平行關(guān)系,沒(méi)有說(shuō)誰(shuí)在上誰(shuí)在下的關(guān)系,模型負(fù)責(zé)業(yè)務(wù)領(lǐng)域的事情,視圖負(fù)責(zé)顯示的事情,控制器把數(shù)據(jù)讀取出來(lái)填充模型后把模型交給視圖去處理。而各種驗(yàn)證什么的應(yīng)該是在模型里處理了。它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。MVC最大的好處是將邏輯和頁(yè)面分離。
7、.NET和C#有什么區(qū)別
答:.NET一般指 .NET FrameWork框架,它是一種平臺(tái),一種技術(shù)。
C#是一種編程語(yǔ)言,可以基于.NET平臺(tái)的應(yīng)用。
8、一列數(shù)的規(guī)則如下: 1、1、2、3、5、8、13、21、34...... 求第30位數(shù)是多少,用遞歸算法實(shí)現(xiàn)。
答: public static int Foo(int i)
{
if (i <= 0)
return 0;
else if(i > 0 && i <= 2)
return 1;
else return Foo(i -1) + Foo(i - 2);
}
}
9、什么是裝箱和拆箱?
答:從值類型接口轉(zhuǎn)換到引用類型裝箱。從引用類型轉(zhuǎn)換到值類型拆箱。
10、 什么是受管制的代碼?
答:unsafe:非托管代碼。不經(jīng)過(guò)CLR運(yùn)行。
【常見.net面試題及答案】相關(guān)文章:
必備.net面試題及答案08-02
.net面試題精選10-31
.net面試題10-30
關(guān)于.net的面試題10-31
常見綜合文秘面試題與答案12-30
科技ASP.NET面試題09-26
常見的英文面試題12-30
面試題及答案02-06