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