ASP.NET筆試題
ASP.NET 是.NET FrameWork的一部分,是一項(xiàng)微軟公司的技術(shù),是一種使嵌入網(wǎng)頁(yè)中的腳本可由因特網(wǎng)服務(wù)器執(zhí)行的服務(wù)器端腳本技術(shù),它可以在通過(guò)HTTP請(qǐng)求文檔時(shí)再在Web服務(wù)器上動(dòng)態(tài)創(chuàng)建它們。下面就由學(xué)習(xí)啦小編為大家介紹一下ASP.NET筆試題的文章,歡迎閱讀。
ASP.NET筆試題篇1
1. 請(qǐng)敘述屬性與索引器的區(qū)別
屬性:
(1) 通過(guò)名稱標(biāo)識(shí)
(3) 通過(guò)簡(jiǎn)單名稱或成員訪問(wèn)來(lái)訪問(wèn)
(3) 可以為靜態(tài)成員或?qū)嵗蓡T
(4) 屬性的get訪問(wèn)器沒(méi)有參數(shù)
(5) 屬性的set訪問(wèn)器包含隱式value參數(shù)
索引器:
(1) 通過(guò)簽名標(biāo)識(shí)
(2) 通過(guò)元素訪問(wèn)來(lái)訪問(wèn)
(3) 必須為實(shí)例成員
(4) 索引器的get訪問(wèn)器具有與索引器相同的形參表
(5) 除了value參數(shù)外,索引器的set訪問(wèn)器還具有與索引器相同的形參表
2. 請(qǐng)敘述const與readonly的區(qū)別。
答:每一個(gè)class至多只可以定義一個(gè)static構(gòu)造函數(shù),并且不允許增加訪問(wèn)級(jí)別關(guān)鍵字,參數(shù)列必須為空。為了不違背編碼規(guī)則,通常把static數(shù)據(jù)成員聲明為private,然后通過(guò)static property提供讀寫訪問(wèn)。
const關(guān)鍵字用于修改字段或局部變量的聲明。它指定字段或局部變量的值不能被修改。常數(shù)聲明引入給定類型的一個(gè)或多個(gè)常數(shù)。
const數(shù)據(jù)成員的聲明式必須包含初值,且初值必須是一個(gè)常量表達(dá)式。因?yàn)樗窃诰幾g時(shí)就需要完全評(píng)估。
const成員可以使用另一個(gè)const成員來(lái)初始化,前提是兩者之間沒(méi)有循環(huán)依賴。
readonly在運(yùn)行期評(píng)估賦值,使我們得以在確保"只讀訪問(wèn)"的前提下,把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ù)里面。
3. 您需要?jiǎng)?chuàng)建一個(gè)ASP.NET應(yīng)用程序,公司考慮使用Windows身份認(rèn)證。所有的用戶都存在于AllWin這個(gè)域中。您想要使用下列認(rèn)證規(guī)則來(lái)配置這個(gè)應(yīng)用程序:
a、 匿名用戶不允許訪問(wèn)這個(gè)應(yīng)用程序。
b、 所有雇員除了Tess和King都允許訪問(wèn)這個(gè)應(yīng)用程序。
請(qǐng)問(wèn)您應(yīng)該使用以下哪一個(gè)代碼段來(lái)配置這個(gè)應(yīng)用程序?( A )
A.
B.
C.
D.
E.
4. 您要?jiǎng)?chuàng)建一個(gè)顯示公司員工列表的應(yīng)用程序。您使用一個(gè)DataGrid控件顯示員工的列表。您打算修改這個(gè)控件以便在這個(gè)Grid的Footer顯示員工合計(jì)數(shù)。請(qǐng)問(wèn)您應(yīng)該怎么做? ( C? )
A.重寫OnPreRender事件,當(dāng)Grid的Footer行被創(chuàng)建時(shí)顯示合計(jì)數(shù)
B.重寫OnItemCreated事件,當(dāng)Grid的Footer行被創(chuàng)建時(shí)顯示合計(jì)數(shù)
C.重寫OnItemDataBound事件,當(dāng)Grid的Footer行被創(chuàng)建時(shí)顯示合計(jì)數(shù)
D.重寫OnLayout事件,當(dāng)Grid的Footer行被創(chuàng)建時(shí)顯示合計(jì)數(shù)
5. 您要?jiǎng)?chuàng)建ASP.NET應(yīng)用程序用于運(yùn)行AllWin公司內(nèi)部的Web站點(diǎn),這個(gè)應(yīng)用程序包含了50個(gè)頁(yè)面。您想要配置這個(gè)應(yīng)用程序以便當(dāng)發(fā)生一個(gè)HTTP代碼錯(cuò)誤時(shí)它可以顯示一個(gè)自定義的錯(cuò)誤頁(yè)面給用戶。您想要花最小的代價(jià)完成這些目標(biāo),您應(yīng)該怎么做?(多選) ( CD )
A.在這個(gè)應(yīng)用程序的Global.asax文件中創(chuàng)建一個(gè)Application_Error過(guò)程去處理ASP.NET代碼錯(cuò)誤
B.在這個(gè)應(yīng)用程序的Web.config文件中創(chuàng)建一個(gè)applicationError節(jié)去處理ASP.NET代碼錯(cuò)誤
C.在這個(gè)應(yīng)用程序的Global.asax文件中創(chuàng)建一個(gè)CustomErrors事件去處理HTTP錯(cuò)誤
D.在這個(gè)應(yīng)用程序的Web.config文件中創(chuàng)建一個(gè)CustomErrors節(jié)去處理HTTP錯(cuò)誤
E.在這個(gè)應(yīng)用程序的每一頁(yè)中添加一個(gè)Page指示符去處理ASP.NET 代碼錯(cuò)誤
F.在這個(gè)應(yīng)用程序的每一頁(yè)中添加一個(gè)Page指示符去處理ASP.NET HTTP錯(cuò)誤
ASP.NET筆試題篇2
1. 您為AllWin公司創(chuàng)建了一個(gè)ASP.NET應(yīng)用程序。這個(gè)應(yīng)用程序調(diào)用一個(gè) Xml Web Service。這個(gè) Xml Web Service 將返回一個(gè)包含了公司雇員列表的DataSet對(duì)象。請(qǐng)問(wèn)您該如何在這個(gè)程序中使用這個(gè) Xml Web Service?( ? )
A.在"引用"對(duì)話框的.Net標(biāo)簽中選擇 System.Web.Services.dll
B.在"Web引用"對(duì)話框中輸入這個(gè)XML Web service的地址
C.在您的 Global.asax.cs 中添加一條 using 語(yǔ)句并指定這個(gè)XML Web service的地址
D.在您的 Global.asax.cs 中寫一個(gè)事件處理器導(dǎo)入這個(gè)Xml Web Service相應(yīng)的.wsdl和.disco 文件
2. 您要?jiǎng)?chuàng)建一個(gè)ASP.NET應(yīng)用程序在DataGrid控件中顯示一個(gè)經(jīng)過(guò)排序的列表。產(chǎn)品數(shù)據(jù)被存放于一個(gè)名為PubBase的Microsoft SQL Server 數(shù)據(jù)庫(kù)。每個(gè)產(chǎn)品的主鍵是ProductID,Numeric型并且每個(gè)產(chǎn)品有一個(gè)字母描述字段,名為ProductName。您使用一個(gè)SqlDataAdapter對(duì)象和一個(gè)SqlCommand對(duì)象通過(guò)調(diào)用一個(gè)存儲(chǔ)過(guò)程從數(shù)據(jù)庫(kù)中獲取產(chǎn)品數(shù)據(jù)。您將SqlCommand對(duì)象的CommandType屬性設(shè)置為CommandType.StoredProcedure,并將它的CommandText屬性設(shè)置為procProductList。您成功的獲取了一個(gè)DataTable對(duì)象,其中是已經(jīng)按ProductID降序排列的產(chǎn)品列表。您打算顯示以相反的字母順序排列的ProductName,請(qǐng)問(wèn)該怎么做? ( B )
A. 將SqlCommand對(duì)象的CommandType屬性修改為CommandType.Text,將CommandText屬性修改為"SELECT * FROM procProductList ORDER BY ProductName DESC"。然后將這個(gè)DataTable對(duì)象綁定到DataGrid控件
B. 創(chuàng)建一個(gè)基于這個(gè)DataTable對(duì)象的新的DataView并將這個(gè)DataView的Sort屬性設(shè)置為"ProductName DESC"。然后將這個(gè)DataView對(duì)象綁定到DataGrid控件
C. 將DataGrid控件的AllowSorting屬性設(shè)置為True,并將DataGridColumn的SortExpression屬性設(shè)置為 "ProductName DESC".以顯示ProductName。然后將這個(gè)DataTable對(duì)象綁定到DataGrid控件
D. 將DataTable對(duì)象的DisplayExpression屬性設(shè)置為 "ORDER BY ProductName DESC".。然后將這個(gè)DataTable對(duì)象綁定到DataGrid控件
3. 什么是ASP.net中的用戶控件
答:用戶控件就是.ascx擴(kuò)展名的東西嘍,可以拖到不同的頁(yè)面中調(diào)用,以節(jié)省代碼.比如登陸可能在多個(gè)頁(yè)面上有,就可以做成用戶控件,但是有一個(gè)問(wèn)題就是用戶控件拖到不同級(jí)別的目錄下后里面的圖片等的相對(duì)路徑會(huì)變得不準(zhǔn)確,需要自已寫方法調(diào)整.
4. 值類型和引用類型的區(qū)別?寫出C#的樣例代碼。
答:結(jié)構(gòu)是值類型,類是引用類型,所以傳結(jié)構(gòu)就是值類型的應(yīng)用,傳對(duì)象或類就是引用類型的.
5. 如何理解委托?
答:據(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è)方法。
方法不需要與委托簽名精確匹配。
6. 私有程序集與共享程序集有什么區(qū)別?
答:一個(gè)私有程序集通常為單個(gè)應(yīng)用程序所使用,并且存儲(chǔ)于這個(gè)應(yīng)用程序所在的目錄之中,或此目錄下面的一個(gè)子目錄中。共享程序集通常存儲(chǔ)在全局程序集緩存 (Global Assembly Cache)之中,這是一個(gè)由.NET運(yùn)行時(shí)所維護(hù)的程序集倉(cāng)庫(kù)。共享程序集通常是對(duì)許多應(yīng)用程序都有用的代碼庫(kù),比如.NET Framework類
7. CLR與IL分別是什么含義?
答:CLR:公共語(yǔ)言運(yùn)行時(shí),類似于Java中的JVM,Java虛擬機(jī);在.Net環(huán)境下,各種編程語(yǔ)言使用一種共同的基礎(chǔ)資源環(huán)境,這就是CLR,CLR將直接與*作系統(tǒng)進(jìn)行通信,而編程語(yǔ)言如C#.NET將盡量避免直接與*作系統(tǒng)直接通信,加強(qiáng)了程序代碼的執(zhí)行安全性,可以這樣看:CLR就是具體的編程語(yǔ)言如:C#.NET與*作系統(tǒng)之間的翻譯,同時(shí)它為具體的編程語(yǔ)言提供了許多資源:
IL,中間語(yǔ)言,也稱MSIL,微軟中間語(yǔ)言,或CIL,通用中間語(yǔ)言;所有.NET源代碼 (不管用哪種語(yǔ)言編寫)在進(jìn)行編譯時(shí)都被編譯成IL。在應(yīng)用程序運(yùn)行時(shí)被即時(shí) (Just-In-Time,JIT)編譯器處理成為機(jī)器碼,被解釋及執(zhí)行。
8. 請(qǐng)解釋ASP.NET中以什么方式進(jìn)行數(shù)據(jù)驗(yàn)證
答:Aps.net 中有非空驗(yàn)證,比較驗(yàn)證,取值范圍驗(yàn)證,正則表達(dá)式驗(yàn)證及客戶自定義驗(yàn)證五大控件,另還有一個(gè)集中驗(yàn)證信息處理控件
9. WEB控件可以激發(fā)服務(wù)端事件,請(qǐng)談?wù)劮?wù)端事件是怎么發(fā)生并解釋其原理?自動(dòng)傳回是什么?為什么要使用自動(dòng)傳回
答:在web控件發(fā)生事件時(shí),客戶端采用提交的形式將數(shù)據(jù)交回服務(wù)端,服務(wù)端先調(diào)用Page_Load事件,然后根據(jù)傳回的狀態(tài)信息自動(dòng)調(diào)用服務(wù)端事件自動(dòng)傳回是當(dāng)我們?cè)邳c(diǎn)擊客戶端控件時(shí),采用提交表單的形式將數(shù)據(jù)直接傳回到務(wù)端
只有通過(guò)自動(dòng)傳回才能實(shí)現(xiàn)服務(wù)端事件的機(jī)制,如果沒(méi)有自動(dòng)回傳機(jī)制就只能調(diào)用客戶端事件,而不能調(diào)用服務(wù)端事件
10. 請(qǐng)解釋web.config文件中的重要節(jié)點(diǎn)
appSettings包含自定義應(yīng)用程序設(shè)置。
system.web 系統(tǒng)配置
compilation動(dòng)態(tài)調(diào)試編譯設(shè)置
customErrors自定義錯(cuò)誤信息設(shè)置
authentication身份驗(yàn)證,此節(jié)設(shè)置應(yīng)用程序的身份驗(yàn)證策略
authorization授權(quán), 此節(jié)設(shè)置應(yīng)用程序的授權(quán)策略
ASP.NET筆試題篇3
1. 請(qǐng)解釋ASP.NET中的web頁(yè)面與其隱藏類之間的關(guān)系?
答:一個(gè)ASP.NET頁(yè)面一般都對(duì)應(yīng)一個(gè)隱藏類,一般都在ASP.NET頁(yè)面的聲明中指定了隱藏類例如一個(gè)頁(yè)面Tst1.aspx的頁(yè)面聲明如下
Codebehind="Tst1.aspx.cs" 表明經(jīng)編譯此頁(yè)面時(shí)使用哪一個(gè)代碼文件
Inherits="T1.Tst1" 表用運(yùn)行時(shí)使用哪一個(gè)隱藏類
2. 什么是viewstate,能否禁用?是否所用控件都可以禁用?
答:Viewstate是保存狀態(tài)的一種機(jī)制,EnableViewState屬性設(shè)置為false即可禁用
3. 當(dāng)發(fā)現(xiàn)不能讀取頁(yè)面上的輸入的數(shù)據(jù)時(shí)很有可能是什么原因造成的?怎么解決
答:很有可能是在Page_Load中數(shù)據(jù)處理時(shí)沒(méi)有進(jìn)行Page的IsPostBack屬性判斷
4. 請(qǐng)解釋什么是上下文對(duì)象,在什么情況下要使用上下文對(duì)象
答:上下文對(duì)象是指HttpContext類的Current 屬性,當(dāng)我們?cè)谝粋€(gè)普通類中要訪問(wèn)內(nèi)置對(duì)象(Response,Request,Session,Server,Appliction等)時(shí)就要以使用此對(duì)象
5. 請(qǐng)解釋轉(zhuǎn)發(fā)與跳轉(zhuǎn)的區(qū)別?
答:轉(zhuǎn)發(fā)就是服務(wù)端的跳轉(zhuǎn)A頁(yè)面提交數(shù)據(jù)到B頁(yè)面,B頁(yè)面進(jìn)行處理然后從服務(wù)端跳轉(zhuǎn)到其它頁(yè)面; 跳轉(zhuǎn)就是指客戶端的跳轉(zhuǎn)
6. new有幾種用法
第一種:new Class();
第二種:覆蓋方法 public new XXXX() { }
第三種:new 約束指定泛型類聲明中的任何類型參數(shù)都必須有公共的無(wú)參數(shù)構(gòu)造函數(shù)
7. 如何把一個(gè)array復(fù)制到arrayList里
答:foreach( object o in array )arrayList.Add(o);
8. datagrid.datasouse可以連接什么數(shù)據(jù)源 [dataset,datatable,dataview,IList]
9. 什么是Windows服務(wù),它的生命周期與標(biāo)準(zhǔn)的EXE程序有什么不同
答:Windows服務(wù)是運(yùn)行在windows后臺(tái)指定用戶下(默認(rèn)System)的應(yīng)用程序,它沒(méi)有標(biāo)準(zhǔn)的UI界面,想比標(biāo)準(zhǔn)的EXE程序,Windows服務(wù)是在服務(wù)開(kāi)始的時(shí)候創(chuàng)建,而在服務(wù)結(jié)束的時(shí)候銷毀,而且可以設(shè)置服務(wù)是否與操作系統(tǒng)一起啟動(dòng),一起關(guān)閉。它支持三種方式:1)自動(dòng)方式 2)手動(dòng)方式 3)禁用。自動(dòng)方式的時(shí)候,windows服務(wù)將在OS啟動(dòng)后自動(dòng)啟動(dòng)運(yùn)行,而手動(dòng)方式則必須手工啟動(dòng)服務(wù),禁用的情況下服務(wù)將不能被啟動(dòng)。另外標(biāo)準(zhǔn)的EXE默認(rèn)使用的當(dāng)前登錄的用戶,而windows服務(wù)則默認(rèn)使用System用戶,這在對(duì)系統(tǒng)資源訪問(wèn)的時(shí)候特別需要注意。
10. Windows單個(gè)進(jìn)程所能訪問(wèn)的最大內(nèi)存量是多少?它與系統(tǒng)的最大虛擬內(nèi)存一樣嗎?這對(duì)于系統(tǒng)設(shè)計(jì)有什么影響?
答:這個(gè)需要針對(duì)硬件平臺(tái),公式為單個(gè)進(jìn)程能訪問(wèn)的最大內(nèi)存量=2的處理器位數(shù)次方/2,比如通常情況下,32位處理器下,單個(gè)進(jìn)程所能訪問(wèn)的最大內(nèi)存量為:232 /2 = 2G 。單個(gè)進(jìn)程能訪問(wèn)的最大內(nèi)存量是最大虛擬內(nèi)存的1/2,因?yàn)橐峙浣o操作系統(tǒng)一半虛擬內(nèi)存。
11. 什么是強(qiáng)類型,什么是弱類型?哪種更好些?為什么?
答:強(qiáng)類型是在編譯的時(shí)候就確定類型的數(shù)據(jù),在執(zhí)行時(shí)類型不能更改,而弱類型在執(zhí)行的時(shí)候才會(huì)確定類型。沒(méi)有好不好,二者各有好處,強(qiáng)類型安全,因?yàn)樗孪纫呀?jīng)確定好了,而且效率高。一般用于編譯型編程語(yǔ)言,如c++,java,c#,pascal等,弱類型相比而言不安全,在運(yùn)行的時(shí)候容易出現(xiàn)錯(cuò)誤,但它靈活,多用于解釋型編程語(yǔ)言,如javascript,vb等
12. PID是什么?在做系統(tǒng)的故障排除時(shí)如何使用它?
PID是進(jìn)程編號(hào),在系統(tǒng)發(fā)現(xiàn)故障的時(shí)候,可以根據(jù)它尋找故障所發(fā)生的具體進(jìn)程,并且可通過(guò)visual studio.net等ide將故障進(jìn)程附加到進(jìn)程中進(jìn)行調(diào)試(debug)
13. 闡述面向接口、面向?qū)ο蟆⒚嫦蚍矫婢幊痰膮^(qū)別
答:面向接口更關(guān)注的是概念,它的原則是先定義好行為規(guī)范,再根據(jù)行為規(guī)范創(chuàng)建實(shí)現(xiàn),嚴(yán)格的來(lái)說(shuō),面向接口應(yīng)該是面向?qū)ο笾械囊徊糠职?,因?yàn)槊嫦驅(qū)ο笠矎?qiáng)調(diào)的是本末倒置原則,也就是實(shí)現(xiàn)依賴于抽象,而抽象不依賴于具體實(shí)現(xiàn),更具比較的應(yīng)該是面向接口與面向抽象對(duì)象,我的體會(huì)是面向接口更加靈活,但實(shí)現(xiàn)時(shí)候,稍微有些代碼冗余,而面向抽象可以結(jié)合面向接口,先定義接口,再定義抽象類,在抽象類中處理一些公共邏輯,再實(shí)現(xiàn)具體實(shí)現(xiàn)類。面向?qū)ο笫菍?duì)復(fù)雜問(wèn)題的分解。面向方面的編程是一種新概念,它解決了很多面向?qū)ο鬅o(wú)法解決的問(wèn)題,比如面向?qū)ο蠹夹g(shù)只能對(duì)業(yè)務(wù)相關(guān)的代碼模塊化,而無(wú)法對(duì)和業(yè)務(wù)無(wú)關(guān)的代碼模塊化。而面向方面正是解決這一問(wèn)題的方案,它的關(guān)鍵思想是"將應(yīng)用程序中的商業(yè)邏輯與對(duì)其提供支持的通用服務(wù)進(jìn)行分離"。
14. 從概念上闡述前期綁定(early-binding)和后期綁定(late-binding)的區(qū)別?
答:這個(gè)就像是強(qiáng)弱類型的比較相似,前期綁定是在編譯的時(shí)候就確定了要綁定的數(shù)據(jù),而后期綁定是在運(yùn)行的時(shí)候才填充數(shù)據(jù)。所以前期綁定如果失敗,會(huì)在編譯時(shí)報(bào)編譯錯(cuò)誤,而后期綁定失敗只有在運(yùn)行時(shí)的時(shí)候才發(fā)生
15. 調(diào)用Assembly.Load算靜態(tài)引用還是動(dòng)態(tài)引用?
答:動(dòng)態(tài)
16. SQL SREVER中,向一個(gè)表中插入了新數(shù)據(jù),如何快捷的得到自增量字段的當(dāng)前值
答:
INSERT INTO jobs (job_desc,min_lvl,max_lvl) VALUES ('Accountant',12,125)
SELECT @@IDENTITY AS 'Identity'
17. DateTime.Parse(myString); 這行代碼有什么問(wèn)題?
答:有問(wèn)題,當(dāng)myString不能滿足時(shí)間格式要求的時(shí)候,會(huì)引發(fā)異常,建議使用DateTime.TryParse()