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