Net面試題大全有答案_第1頁
Net面試題大全有答案_第2頁
Net面試題大全有答案_第3頁
Net面試題大全有答案_第4頁
Net面試題大全有答案_第5頁
已閱讀5頁,還剩62頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Net面試題大全有答案資料僅供參考Net面試題大全(有答案)1(1)面向?qū)ο蟮恼Z言具有__繼承性_性、_封裝性_性、_多態(tài)性性。(2)能用foreach遍歷訪問的對象需要實(shí)現(xiàn)_IEnumerable接口或聲明_GetEnumerator方法的類型。1.c#中的三元運(yùn)算符是__?:__2.當(dāng)整數(shù)a賦值給一個(gè)object對象時(shí),整數(shù)a將會(huì)被__裝箱___?3.類成員有__3__種可訪問形式?4.publicstaticconstintA=1;這段代碼有錯(cuò)誤么?是什么?const成員都是static因此應(yīng)該去掉static5.floatf=-123.567F;inti=(int)f;i的值現(xiàn)在是_-123____?6.利用operator聲明且僅聲明了==,有什么錯(cuò)誤么?

要同時(shí)修改Equale和GetHash()?重載了"=="就必須重載"!="7.委托聲明的關(guān)鍵字是___delegate___?8.用sealed修飾的類有什么特點(diǎn)?不可被繼承9.在A中所有的自定義用戶控件都必須繼承自_System.Web.UI.UserControl_______?10.在.Net中所有可序列化的類都被標(biāo)記為__[serializable]___?11.在.Net托管代碼中我們不用擔(dān)心內(nèi)存漏洞,這是因?yàn)橛辛薩gC__?12.下面的代碼中有什么錯(cuò)誤嗎?_abstractoverride是不能夠一起修飾______usingSystem;classA{publicvirtualvoidF(){Console.WriteLine("A.F");}}abstractclassB:A{publicabstractoverridevoidF();}13.當(dāng)類T只聲明了私有實(shí)例構(gòu)造函數(shù)時(shí),則在T的程序文本外部,_不能夠_(能夠or不能夠)從T派生出新的類,_不能夠_(能夠or不能夠)直接創(chuàng)立T的任何實(shí)例。14.下面這段代碼有錯(cuò)誤么?case():不行default;switch(i){case():CaseZero();break;case1:CaseOne();break;case2:dufault;CaseTwo();break;}15.在.Net中,類System.Web.UI.Page能夠被繼承么?能夠2.不定項(xiàng)選擇:(1)以下敘述正確的是:BCA.接口中能夠有虛方法。B.一個(gè)類能夠?qū)崿F(xiàn)多個(gè)接口。

C.接口不能被實(shí)例化。D.接口中能夠包含已實(shí)現(xiàn)的方法。

(2)從數(shù)據(jù)庫讀取記錄,你可能用到的方法有:BCD

A.ExecuteNonQuery

B.ExecuteScalar

C.Fill

D.ExecuteReader2.對于一個(gè)實(shí)現(xiàn)了IDisposable接口的類,以下哪些項(xiàng)能夠執(zhí)行與釋放或重置非托管資源相關(guān)的應(yīng)用程序定義的任務(wù)?(多選)

(

ABC

)

A.CloseB.DisposeC.Finalize

D.usingE.Quit

3.以下關(guān)于ref和out的描述哪些項(xiàng)是正確的?(多選)

(

ACD

)

A.使用ref參數(shù),傳遞到ref參數(shù)的參數(shù)必須最先初始化。

B.使用out參數(shù),傳遞到out參數(shù)的參數(shù)必須最先初始化。

C.使用ref參數(shù),必須將參數(shù)作為ref參數(shù)顯式傳遞到方法。

D.使用out參數(shù),必須將參數(shù)作為out參數(shù)顯式傳遞到方法。

1.在對SQLServer數(shù)據(jù)庫操作時(shí)應(yīng)選用(A)。a)SQLServer.NETFramework數(shù)據(jù)提供程序;b)OLEDB.NETFramework數(shù)據(jù)提供程序;c)ODBC.NETFramework數(shù)據(jù)提供程序;d)Oracle.NETFramework數(shù)據(jù)提供程序;2.下列選項(xiàng)中,(C)是引用類型。a)enum類型

b)struct類型

c)string類型

d)int類型3.關(guān)于ASP.NET中的代碼隱藏文件的描述正確的是(C)a)Web窗體頁的程序的邏輯由代碼組成,這些代碼的創(chuàng)立用于與窗體交互。編程邏輯唯一與用戶界面不同的文件中。該文件稱作為“代碼隱藏”文件,如果用C#創(chuàng)立,該文件將具有“.ascx.cs”擴(kuò)展名。b)項(xiàng)目中所有Web窗體頁的代碼隱藏文件都被編譯成.EXE文件。c)項(xiàng)目中所有的Web窗體頁的代碼隱藏文件都被編譯成項(xiàng)目動(dòng)態(tài)鏈接庫(.dll)文件。d)以上都不正確。4.以下描述錯(cuò)誤的是(A)a)在C++中支持抽象類而在C#中不支持抽象類。b)C++中可在頭文件中聲明類的成員而在CPP文件中定義類的成員,在C#中沒有頭文件而且在同一處聲明和定義類的成員。c)在C#中可使用new修飾符顯式隱藏從基類繼承的成員。d)在C#中要在派生類中重新定義基類的虛函數(shù)必須在前面加Override。5.C#的數(shù)據(jù)類型有(B)[原文為D,有誤]a)值類型和調(diào)用類型;b)值類型和引用類型;c)引用類型和關(guān)系類型;d)關(guān)系類型和調(diào)用類型;6.下列描述錯(cuò)誤的是(D)a)類不能夠多重繼承而接口能夠;b)抽象類自身能夠定義成員而接口不能夠;c)抽象類和接口都不能被實(shí)例化;d)一個(gè)類能夠有多個(gè)基類和多個(gè)基接口;7.在DOM中,裝載一個(gè)XML文檔的方法(B)[原文為D,有誤]a)save方法

b)load方法

c)loadXML方法

d)send方法8.下列關(guān)于構(gòu)造函數(shù)的描述正確的是(C)a)構(gòu)造函數(shù)能夠聲明返回類型。b)構(gòu)造函數(shù)不能夠用private修飾c)構(gòu)造函數(shù)必須與類名相同d)構(gòu)造函數(shù)不能帶參數(shù)9.以下是一些C#中的枚舉型的定義,其中錯(cuò)誤的用法有()a)publicenumvar1{Mike=100,Nike=102,Jike}b)publicenumvar1{Mike=100,Nike,

Jike}c)publicenumvar1{Mike=-1,Nike,Jike}d)publicenumvar1{Mike,Nike,Jike}10.int[][]myArray3=newint[3][]{newint[3]{5,6,2},newint[5]{6,9,7,8,3},newint[2]{3,2}};myArray3[2][2]的值是(D)。a)9

b)2

c)6

d)越界11.接口是一種引用類型,在接口中能夠聲明(A),但不能夠聲明公有的域或私有的成員變量。a)方法、屬性、索引器和事件;

b)方法、屬性信息、屬性;

c)索引器和字段;

d)事件和字段;12.ASP.NET框架中,服務(wù)器控件是為配合Web表單工作而專門設(shè)計(jì)的。服務(wù)器控件有兩種類型,它們是(A)a)HTML控件和Web控件

b)HTML控件和XML控件

c)XML控件和Web控件

d)HTML控件和IIS控件13.ASP.NET中,在Web窗體頁上注冊一個(gè)用戶控件,指定該控件的名稱為”Mike”,正確的注冊指令為(D)a)<%@RegisterTagPrefix=“Mike”TagName=“Space2”Src=“myX.ascx”%>b)<%@RegisterTagPrefix=“Space2”TagName=“Mike”Src=“myX.ascx”%>c)<%@RegisterTagPrefix=“SpaceX”TagName=“Space2”Src=“Mike”%>d)以上皆非14.在ADO.NET中,對于Command對象的ExecuteNonQuery()方法和ExecuteReader()方法,下面敘述錯(cuò)誤的是(C)。a)insert、update、delete等操作的Sql語句主要用ExecuteNonQuery()方法來執(zhí)行;b)ExecuteNonQuery()方法返回執(zhí)行Sql語句所影響的行數(shù)。c)Select操作的Sql語句只能由ExecuteReader()方法來執(zhí)行;d)ExecuteReader()方法返回一個(gè)DataReder對象;15.下列ASP.NET語句(b)正確地創(chuàng)立了一個(gè)與SQLServer數(shù)據(jù)庫的連接。a)SqlConnectioncon1=newConnection(“DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=myDB”);b)SqlConnectioncon1=newSqlConnection(“DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=myDB”);c)SqlConnectioncon1=newSqlConnection(DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=myDB);d)SqlConnectioncon1=newOleDbConnection(“DataSource=localhost;IntegratedSecurity=SSPI;InitialCatalog=myDB”);16.Winform中,關(guān)于ToolBar控件的屬性和事件的描述不正確的是(D)。a)Buttons屬性表示ToolBar控件的所有工具欄按鈕b)ButtonSize屬性表示ToolBar控件上的工具欄按鈕的大小,如高度和寬度c)DropDownArrows屬性表明工具欄按鈕(該按鈕有一列值需要以下拉方式顯示)旁邊是否顯示下箭頭鍵d)ButtonClick事件在用戶單擊工具欄任何地方時(shí)都會(huì)觸發(fā)17.在ADO.NET中執(zhí)行一個(gè)存儲(chǔ)過程時(shí),如果要設(shè)置輸出參數(shù)則必須同時(shí)設(shè)置參數(shù)的方向和(B),必要時(shí)還要設(shè)置參數(shù)尺寸。a)大??;

b)上限;

c)初始值;

d)類型;18.如果將窗體的FormBoderStyle設(shè)置為None,則(B)。a)窗體沒有邊框并不能調(diào)整大?。?/p>

b)窗體沒有邊框但能調(diào)整大??;c)窗體有邊框但不能調(diào)整大小;

d)窗體是透明的;19.如果要將窗體設(shè)置為透明的,則(B)a)要將FormBoderStyle屬性設(shè)置為None;

b)要將Opacity屬性設(shè)置為小于100%得值;c)要將locked屬性設(shè)置為True;

d)要將Enabled屬性設(shè)置為True;20.下列關(guān)于C#中索引器理解正確的是(B/C)a)索引器的參數(shù)必須是兩個(gè)或兩個(gè)以上

b)索引器的參數(shù)類型必須是整數(shù)型c)索引器沒有名字

d)以上皆非21.下面描述錯(cuò)誤的是(C/D)。a)窗體也是控件;b)窗體也是類;c)控件是從窗體繼承來的;d)窗體的父類是控件類;22.要對注冊表進(jìn)行操作則必須包含(D)。a)System.ComponentModel命名空間;b)System.Collections命名空間;c)System.Threading命名空間;

d)Microsoft.Win32命名空間;23.要?jiǎng)?chuàng)立多文檔應(yīng)用程序,需要將窗體的(D)屬性設(shè)為true。a)DrawGrid;

b)ShowInTaskbar;

c)Enabled;

d)IsMdiContainer;24.如果設(shè)treeView1=newTreeView(),則treeView1.Nodes.Add("根節(jié)點(diǎn)")返回的是一個(gè)()類型的值。a)TreeNode;b)int;c)string;d)TreeView;25.下面關(guān)于XML的描述錯(cuò)誤的是(D)。a)XML提供一種描述結(jié)構(gòu)化數(shù)據(jù)的方法;b)XML是一種簡單、與平臺(tái)無關(guān)并被廣泛采用的標(biāo)準(zhǔn);c)XML文檔可承載各種信息;d)XML只是為了生成結(jié)構(gòu)化文檔;1.裝箱、拆箱操作發(fā)生在:(

C

)A.類與對象之間

B.對象與對象之間C.引用類型與值類型之間

D.引用類型與引用類型之間2.用戶類若想支持Foreach語句需要實(shí)現(xiàn)的接口是:(

A

)A.IEnumerableB.IEnumeratorC.ICollectionD.ICollectData3..NetFramework經(jīng)過什么與COM組件進(jìn)行交互操作?(

C)A.SideBySideB.WebServiceC.InteropD.PInvoke4..Net依靠以下哪一項(xiàng)技術(shù)解決COM存在的DllHell問題的?(

A

)A.SideBySideB.InteropC.PInvokeD.COM+5.裝箱與拆箱操作是否是互逆的操作?(

B

)A.是B.否6.以下哪個(gè)是能夠變長的數(shù)組?(

D

)A.Array

B.string[]C.string[N]

D.ArrayList7.用戶自定義異常類需要從以下哪個(gè)類繼承:(

A

)A.Exception

B.CustomExceptionC.ApplicationException

D.BaseException8.以下代碼段中能否編譯經(jīng)過?請給出理由。try{}catch(FileNotFoundExceptione1){}catch(Exceptione2){}catch(IOExceptione3){}catch{}

9.對于一個(gè)實(shí)現(xiàn)了IDisposable接口的類,以下哪些項(xiàng)能夠執(zhí)行與釋放或重置非托管資源相關(guān)的應(yīng)用程序定義的任務(wù)?(多選)(

ABC

)A.Close

B.DisposeC.FinalizeD.using

E.Quit10.Net依賴以下哪項(xiàng)技術(shù)實(shí)現(xiàn)跨語言互用性?(

C

)A.CLR

B.CTS

C.CLS

D.CTT11.請問:String類與StringBuilder類有什么區(qū)別?為什么在.Net類庫中要同時(shí)存在這2個(gè)類?(簡答)

如果要操作一個(gè)不斷增長的字符串,盡量不用String類,改用StringBuilder類。兩個(gè)類的工作原理不同:String類是一種傳統(tǒng)的修改字符串的方式,它確實(shí)能夠完成把一個(gè)字符串添加到另一個(gè)字符串上的工作沒錯(cuò),可是在.NET框架下,這個(gè)操作實(shí)在是劃不來。因?yàn)橄到y(tǒng)先是把兩個(gè)字符串寫入內(nèi)存,接著刪除原來的String對象,然后創(chuàng)立一個(gè)String對象,并讀取內(nèi)存中的數(shù)據(jù)賦給該對象。這一來二去的,耗了不少時(shí)間。而使用System.Text命名空間下面的StringBuilder類就不是這樣了,它提供的Append方法,能夠在已有對象的原地進(jìn)行字符串的修改,簡單而且直接。當(dāng)然,一般情況下覺察不到這二者效率的差異,但如果你要對某個(gè)字符串進(jìn)行大量的添加操作,那么StringBuilder類所耗費(fèi)的時(shí)間和String類簡直不是一個(gè)數(shù)量級的。

12.以下哪個(gè)類是int的基類?(

)A.Int32

B.Object

C.ValueType

D.Int16

二、C#部分*13.以下哪些能夠作為接口成員?(多選)(

ABDE)A.方法B.屬性C.字段D.事件E.索引器F.構(gòu)造函數(shù)G.析構(gòu)函數(shù)14.以下關(guān)于ref和out的描述哪些項(xiàng)是正確的?(多選)(

ACD

)A.使用ref參數(shù),傳遞到ref參數(shù)的參數(shù)必須最先初始化。B.使用out參數(shù),傳遞到out參數(shù)的參數(shù)必須最先初始化。C.使用ref參數(shù),必須將參數(shù)作為ref參數(shù)顯式傳遞到方法。D.使用out參數(shù),必須將參數(shù)作為out參數(shù)顯式傳遞到方法。15.“訪問范圍限定于此程序或那些由它所屬的類派生的類型”是對以下哪個(gè)成員可訪問性含義的正確描述?(

B

)A.public

B.protected

C.internal

D.protectedinternal16.classClass1{

privatestaticintcount=0;

staticClass1()

{

count++;

}

publicClass1()

{

count++;

}}Class1o1=newClass1();Class1o2=newClass1();請問,o1.Count的值是多少?(

C

)A.1

B.2

C.3

D.417.abstractclassBaseClass{

publicvirtualvoidMethodA()

{

}

publicvirtualvoidMethodB()

{

}}classClass1:BaseClass{

publicvoidMethodA(stringarg)

{

}

publicoverridevoidMethodB()

{

}}classClass2:Class1{

newpublicvoidMethodB()

{

}}classMainClass{

publicstaticvoidMain(string[]args)

{

Class2o=newClass2();

Console.WriteLine(o.MethodA());

}}請問,o.MethodA調(diào)用的是:(

A

)A.BaseClass.MethodAB.Class2.MethodAC.Class1.MethodAD.都不是18.請敘述屬性與索引器的區(qū)別。

屬性

索引器

經(jīng)過名稱標(biāo)識。

經(jīng)過簽名標(biāo)識。

經(jīng)過簡單名稱或成員訪問來訪問。

經(jīng)過元素訪問來訪問。

能夠?yàn)殪o態(tài)成員或?qū)嵗蓡T。

必須為實(shí)例成員。

屬性的

get

訪問器沒有參數(shù)。

索引器的

get

訪問器具有與索引器相同的形參表。

屬性的

set

訪問器包含隱式

value

參數(shù)。

除了

value

參數(shù)外,索引器的

set

訪問器還具有與索引器相同的形參表。

19.請敘述const與readonly的區(qū)別。每一個(gè)class至多只能夠定義一個(gè)static構(gòu)造函數(shù),而且不允許增加訪問級別關(guān)鍵字,參數(shù)列必須為空。

為了不違背編碼規(guī)則,一般把static數(shù)據(jù)成員聲明為private,然后經(jīng)過statciproperty提供讀寫訪問。

const關(guān)鍵字用于修改字段或局部變量的聲明。它指定字段或局部變量的值不能被修改。常數(shù)聲明引入給定類型的一個(gè)或多個(gè)常數(shù)。

const數(shù)據(jù)成員的聲明式必須包含初值,且初值必須是一個(gè)常量表示式。因?yàn)樗窃诰幾g時(shí)就需要完全評估。

const成員能夠使用另一個(gè)const成員來初始化,前提是兩者之間沒有循環(huán)依賴。

readonly在運(yù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ù)里面。21.您需要?jiǎng)?chuàng)立一個(gè)ASP.NET應(yīng)用程序,公司考慮使用Windows身份認(rèn)證。所有的用戶都存在于AllWin這個(gè)域中。您想要使用下列認(rèn)證規(guī)則來配置這個(gè)應(yīng)用程序:a、匿名用戶不允許訪問這個(gè)應(yīng)用程序。b、所有雇員除了Tess和King都允許訪問這個(gè)應(yīng)用程序。請問您應(yīng)該使用以下哪一個(gè)代碼段來配置這個(gè)應(yīng)用程序?(

A

)A.<authorization><denyusers=”allwin\tess,allwin\king”><allowusers=”*”><denyusers=”?”></authorization>B.<authorization><allowusers=”*”><denyusers=”allwin\tess,allwin\king”><denyusers=”?”></authorization>C.<authorization><denyusers=”allwin\tess,allwin\king”><denyusers=”?”><allowusers=”*”></authorization>D.<authorization><allowusers=”allwin\tess,allwin\king”><allowusers=”*”></authorization>E.<authorization><allowusers=”*”><denyusers=”allwin\tess,allwin\king”></authorization>22.您要?jiǎng)?chuàng)立一個(gè)顯示公司員工列表的應(yīng)用程序。您使用一個(gè)DataGrid控件顯示員工的列表。您打算修改這個(gè)控件以便在這個(gè)Grid的Footer顯示員工合計(jì)數(shù)。請問您應(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ù)。23.您要?jiǎng)?chuàng)立ASP.NET應(yīng)用程序用于運(yùn)行AllWin公司內(nèi)部的Web站點(diǎn),這個(gè)應(yīng)用程序包含了50個(gè)頁面。您想要配置這個(gè)應(yīng)用程序以便當(dāng)發(fā)生一個(gè)HTTP代碼錯(cuò)誤時(shí)它能夠顯示一個(gè)自定義的錯(cuò)誤頁面給用戶。您想要花最小的代價(jià)完成這些目標(biāo),您應(yīng)該怎么做?(多選)(

CD

)A.在這個(gè)應(yīng)用程序的Global.asax文件中創(chuàng)立一個(gè)Application_Error過程去處理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)用程序的每一頁中添加一個(gè)Page指示符去處理ASP.NET代碼錯(cuò)誤。F.在這個(gè)應(yīng)用程序的每一頁中添加一個(gè)Page指示符去處理ASP.NETHTTP錯(cuò)誤。24.您的公司有一個(gè)DBServer,名為AllWin,其上裝了MSSQLSERVER。現(xiàn)在需要您寫一個(gè)數(shù)據(jù)庫連接字符串,用以連接AllWin上SQLSERVER中的一個(gè)名為PubBase實(shí)例的Test庫。請問,應(yīng)該選擇下面哪一個(gè)字符串?(

B

)A.“Server=AllWin;DataSource=PubBase;InitialCatalog=Test;IntegratedSecurity=SSPI”B.“Server=AllWin;DataSource=PubBase;Database=Test;IntegratedSecurity=SSPI”C.“DataSource=AllWin\PubBase;InitialCategory=PubBase;IntegratedSecurity=SSPI”D.“DataSource=AllWin\PubBase;Database=Test;IntegratedSecurity=SSPI”25.您為AllWin公司創(chuàng)立了一個(gè)ASP.NET應(yīng)用程序。這個(gè)應(yīng)用程序調(diào)用一個(gè)XmlWebService。這個(gè)XmlWebService將返回一個(gè)包含了公司雇員列表的DataSet對象。請問您該如何在這個(gè)程序中使用這個(gè)XmlWebService?(

?

)A.在“引用”對話框的.Net標(biāo)簽中選擇System.Web.Services.dll。B.在“Web引用”對話框中輸入這個(gè)XMLWebservice的地址。C.在您的Global.asax.cs中添加一條using語句并指定這個(gè)XMLWebservice的地址。D.在您的Global.asax.cs中寫一個(gè)事件處理器導(dǎo)入這個(gè)XmlWebService相應(yīng)的.wsdl和.disco文件。26.您要?jiǎng)?chuàng)立一個(gè)ASP.NET應(yīng)用程序在DataGrid控件中顯示一個(gè)經(jīng)過排序的列表。產(chǎn)品數(shù)據(jù)被存放于一個(gè)名為PubBase的MicrosoftSQLServer數(shù)據(jù)庫。每個(gè)產(chǎn)品的主鍵是ProductID,Numeric型而且每個(gè)產(chǎn)品有一個(gè)字母描述字段,名為ProductName。您使用一個(gè)SqlDataAdapter對象和一個(gè)SqlCommand對象經(jīng)過調(diào)用一個(gè)存儲(chǔ)過程從數(shù)據(jù)庫中獲取產(chǎn)品數(shù)據(jù)。您將SqlCommand對象的CommandType屬性設(shè)置為CommandType.StoredProcedure,并將它的CommandText屬性設(shè)置為procProductList。您成功的獲取了一個(gè)DataTable對象,其中是已經(jīng)按ProductID降序排列的產(chǎn)品列表。您打算顯示以相反的字母順序排列的ProductName,請問該怎么做?(

B

)A.將SqlCommand對象的CommandType屬性修改為CommandType.Text,將CommandText屬性修改為”SELECT*FROMprocProductListORDERBYProductNameDESC”。然后將這個(gè)DataTable對象綁定到DataGrid控件。B.創(chuàng)立一個(gè)基于這個(gè)DataTable對象的新的DataView并將這個(gè)DataView的Sort屬性設(shè)置為“ProductNameDESC”。然后將這個(gè)DataView對象綁定到DataGrid控件。C.將DataGrid控件的AllowSorting屬性設(shè)置為True,并將DataGridColumn的SortExpression屬性設(shè)置為“ProductNameDESC”.以顯示ProductName。然后將這個(gè)DataTable對象綁定到DataGrid控件。D.將DataTable對象的DisplayExpression屬性設(shè)置為“ORDERBYProductNameDESC”.。然后將這個(gè)DataTable對象綁定到DataGrid控件。76.C#代碼實(shí)現(xiàn),確保windows程序只有一個(gè)實(shí)例(instance)

///<summary>

///應(yīng)用程序的主入口點(diǎn)。

///</summary>

[STAThread]

staticvoidMain()

{

//防止程序多次運(yùn)行

if(!OneInstance.IsFirst("GetPayInfo"))

{

MessageBox.Show("警告:程序正在運(yùn)行中!請不要重復(fù)打開程序!可在右下角系統(tǒng)欄找到!","程序錯(cuò)誤提示:",MessageBoxButtons.OK,MessageBoxIcon.Stop);

return;

}

Application.Run(newForm1());

}

//*******************

防止程序多次執(zhí)行

**************************

publicabstractclassOneInstance

{

///<summary>

///判斷程序是否正在運(yùn)行

///</summary>

///<paramname="appId">程序名稱</param>

///<returns>如果程序是第一次運(yùn)行返回True,否則返回False</returns>

publicstaticboolIsFirst(stringappId)

{

boolret=false;

if(OpenMutex(0x1F0001,0,appId)==IntPtr.Zero)

{

CreateMutex(IntPtr.Zero,0,appId);

ret=true;

}

returnret;

}

[DllImport("Kernel32.dll",CharSet=CharSet.Auto)]

privatestaticexternIntPtrOpenMutex(

uintdwDesiredAccess,

//access

intbInheritHandle,

//inheritanceoption

stringlpName

//objectname

);

[DllImport("Kernel32.dll",CharSet=CharSet.Auto)]

privatestaticexternIntPtrCreateMutex(

IntPtrlpMutexAttributes,

//SD

intbInitialOwner,

//initialowner

stringlpName

//objectname

);

}3.簡述private、protected、public、internal修飾符的訪問權(quán)限。private:私有成員,在類的內(nèi)部才能夠訪問。protected:保護(hù)成員,該類內(nèi)部和繼承類中能夠訪問。public:公共成員,完全公開,沒有訪問限制。internal:在同一命名空間內(nèi)能夠訪問。4.寫出一條Sql語句:取出表A中第31到第40記錄(SQLServer,以自動(dòng)增長的ID作為主鍵,

注意:ID可能不是連續(xù)的。)selecttop10*fromAwhereidnotin(selecttop30idfromA)解2:selecttop10*fromAwhereid>(selectmax(id)from(selecttop30idfromA)asA)5.列舉ASP.NET頁面之間傳遞值的幾種方式。1.

使用QueryString,如?id=1;response.Redirect()2.使用Session變量3.使用Server.Transfer2。請說明在.net中常見的幾種頁面間傳遞參數(shù)的方法,并說出她們的優(yōu)缺點(diǎn)。session(viewstate)簡單,但易丟失application全局cookie簡單,但可能不支持,可能被偽造inputttype="hidden"簡單,可能被偽造url參數(shù)簡單,顯示于地址欄,長度有限數(shù)據(jù)庫穩(wěn)定,安全,但性能相對弱2.override與重載的區(qū)別Override用來重寫父類的方法,重載使用相同名的方法或操作符擁有不同類型的參數(shù)3、.net的錯(cuò)誤處理機(jī)制是什么.net錯(cuò)誤處理機(jī)制采用try->catch->finally結(jié)構(gòu),發(fā)生錯(cuò)誤時(shí),層層上拋,直到找到匹配的Catch為止。4、C#中接口和類的異同接口和類都是類,不同的事,接口只包含方法或?qū)傩缘穆暶?,不包含具體實(shí)現(xiàn)方法的代碼,接口能夠?qū)崿F(xiàn)多繼承,而類只能是單繼承,繼承接口的類必須實(shí)現(xiàn)接口中聲明的方法或?qū)傩浴=涌谥饕x一種規(guī)范,統(tǒng)一調(diào)用方法,在大型項(xiàng)目中接口正發(fā)揮日益重要的作用。4、DataReader和DataSet的異同DataReader和DataSet最大的區(qū)別在于,DataReader使用時(shí)始終占用SqlConnection,在線操作數(shù)據(jù)庫..任何對SqlConnection的操作都會(huì)引發(fā)DataReader的異常..因?yàn)镈ataReader每次只在內(nèi)存中加載一條數(shù)據(jù),因此占用的內(nèi)存是很小的..因?yàn)镈ataReader的特殊性和高性能.因此DataReader是只進(jìn)的..你讀了第一條后就不能再去讀取第一條了..DataSet則是將數(shù)據(jù)一次性加載在內(nèi)存中.拋棄數(shù)據(jù)庫連接..讀取完畢即放棄數(shù)據(jù)庫連接..因?yàn)镈ataSet將數(shù)據(jù)全部加載在內(nèi)存中.因此比較消耗內(nèi)存...可是確比DataReader要靈活..能夠動(dòng)態(tài)的添加行,列,數(shù)據(jù).對數(shù)據(jù)庫進(jìn)行回傳更新操作...1.

在c#中using和new這兩個(gè)關(guān)鍵字有什么意義,請寫出你所知道的意義?Using引入一個(gè)名子空間,或在使用了一個(gè)對像后自動(dòng)調(diào)用其IDespose,New實(shí)例化一個(gè)對像,或修飾一個(gè)方法,表此方法完全重寫此方法2.在下面的例子里usingSystem;classA{publicA(){PrintFields();}publicvirtualvoidPrintFields(){}}classB:A{intx=1;inty;publicB(){y=-1;}publicoverridevoidPrintFields(){Console.WriteLine("x={0},y={1}",x,y);}當(dāng)使用newB()創(chuàng)立B的實(shí)例時(shí),產(chǎn)生什么輸出?X=1,Y=03.下面的例子中usingSystem;classA{publicstaticintX;staticA(){X=B.Y+1;}}classB{publicstaticintY=A.X+1;staticB(){}staticvoidMain(){Console.WriteLine("X={0},Y={1}",A.X,B.Y);}}產(chǎn)生的輸出結(jié)果是什么?x=1,y=24.談?wù)勵(lì)惡徒Y(jié)構(gòu)的區(qū)別?最大區(qū)別一個(gè)是引用類型,一個(gè)是值類型默認(rèn)成員訪問為public是另外一個(gè)區(qū)別1.在.net(C#or)中如何獲得當(dāng)前窗體或控件的句柄,特別是控件本身的句柄(請列舉)。this(C#)Me().2在.net(C#or)中如何用戶自定義消息,并在窗體中處理這些消息。在form中重載DefWndProc函數(shù)來處理消息:protectedoverridevoidDefWndProc(refSystem.WinForms.Messagem){switch(m.msg){caseWM_Lbutton:///string與MFC中的CString的Format函數(shù)的使用方法有所不同stringmessage=string.Format("收到消息!參數(shù)為:{0},{1}",m.wParam,m.lParam);MessageBox.Show(message);///顯示一個(gè)消息框break;caseUSER:處理的代碼default:base.DefWndProc(refm);///調(diào)用基類函數(shù)處理非自定義消息。break;}}3.在.net(C#or)如何啟動(dòng)另一個(gè)程序。process4.在.net(C#or)中如何取消一個(gè)窗體的關(guān)閉privatevoidForm1_Closing(objectsender,System.ComponentModel.CancelEventArgse){e.Cancel=true;}5.在.net(C#or)中,Appplication.Exit還是Form.Close有什么不同?答案:一個(gè)是退出整個(gè)應(yīng)用程序,一個(gè)是關(guān)閉其中一個(gè)form6.在C#中有一個(gè)double型的變量,比如10321.5,比如.21644,作為貨幣的值如何按各個(gè)不同國家的習(xí)慣來輸出。比如美國用$10,321.50和$122,235,401.22而在英國則為£10321.50和£122235401.22答案:System.Globalization.CultureInfoMyCulture=newSystem.Globalization.CultureInfo("en-US");//System.Globalization.CultureInfoMyCulture=newSystem.Globalization.CultureInfo("en-GB");為英國貨幣類型decimaly=9999m;stringstr=String.Format(MyCulture,"Myamount={0:c}",y);7.某一密碼僅使用K、L、M、N、O共5個(gè)字母,密碼中的單詞從左向右排列,密碼單詞必須遵循如下規(guī)則:(1)密碼單詞的最小長度是兩個(gè)字母,能夠相同,也能夠不同(2)K不可能是單詞的第一個(gè)字母(3)如果L出現(xiàn),則出現(xiàn)次數(shù)不止一次(4)M不能使最后一個(gè)也不能是倒數(shù)第二個(gè)字母(5)K出現(xiàn),則N就一定出現(xiàn)(6)O如果是最后一個(gè)字母,則L一定出現(xiàn)問題一:下列哪一個(gè)字母能夠放在LO中的O后面,形成一個(gè)3個(gè)字母的密碼單詞?A)KB)LC)MD)N答案:B問題二:如果能得到的字母是K、L、M,那么能夠形成的兩個(gè)字母長的密碼單詞的總數(shù)是多少?A)1個(gè)B)3個(gè)C)6個(gè)D)9個(gè)答案:A問題三:下列哪一個(gè)是單詞密碼?A)KLLNB)LOMLC)MLLOD)NMKO答案:C8.62-63=1等式不成立,請移動(dòng)一個(gè)數(shù)字(不能夠移動(dòng)減號和等于號),使得等式成立,如何移動(dòng)?答案:62移動(dòng)成2的6次方new有幾種用法第一種:newClass();第二種:覆蓋方法publicnewXXXX(){}第三種:new約束指定泛型類聲明中的任何類型參數(shù)都必須有公共的無參數(shù)構(gòu)造函數(shù)。2.如何把一個(gè)array復(fù)制到arrayList里foreach(objectoinarray)arrayList.Add(o);3.datagrid.datasouse能夠連接什么數(shù)據(jù)源[dataset,datatable,dataview]dataset,datatable,dataview,IList4.概述反射和序列化反射:程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對象。您能夠使用反射動(dòng)態(tài)地創(chuàng)立類型的實(shí)例,將類型綁定到現(xiàn)有對象,或從現(xiàn)有對象中獲取類型。然后,能夠調(diào)用類型的方法或訪問其字段和屬性序列化:序列化是將對象轉(zhuǎn)換為容易傳輸?shù)母袷降倪^程。例如,能夠序列化一個(gè)對象,然后使用HTTP經(jīng)過Internet在客戶端和服務(wù)器之間傳輸該對象。在另一端,反序列化將從該流重新構(gòu)造對象。5.概述o/rmapping的原理利用反射,配置將類于數(shù)據(jù)庫表映射7.用sealed修飾的類有什么特點(diǎn)sealed修飾符用于防止從所修飾的類派生出其它類。如果一個(gè)密封類被指定為其它類的基類,則會(huì)發(fā)生編譯時(shí)錯(cuò)誤。密封類不能同時(shí)為抽象類。sealed修飾符主要用于防止非有意的派生,可是它還能促使某些運(yùn)行時(shí)優(yōu)化。具體說來,由于密封類永遠(yuǎn)不會(huì)有任何派生類,因此對密封類的實(shí)例的虛擬函數(shù)成員的調(diào)用能夠轉(zhuǎn)換為非虛擬調(diào)用來處理。11.詳述.NET里class和struct的異同!class:放在?struct放在?struct值傳遞類與結(jié)構(gòu)有很多相似之處:結(jié)構(gòu)能夠?qū)崿F(xiàn)接口,而且能夠具有與類相同的成員類型。然而,結(jié)構(gòu)在幾個(gè)重要方面不同于類:結(jié)構(gòu)為值類型而不是引用類型,而且結(jié)構(gòu)不支持繼承。結(jié)構(gòu)的值存儲(chǔ)在“在堆棧上”或“內(nèi)聯(lián)”。細(xì)心的程序員有時(shí)能夠經(jīng)過聰明地使用結(jié)構(gòu)來增強(qiáng)性能。12.概述.NET里對remoting和webservice兩項(xiàng)技術(shù)的理解和實(shí)際中的應(yīng)用。遠(yuǎn)程邏輯調(diào)用,remoing接口只能用在.net中13.什么是code-behind技術(shù)

aspxandcs14.概述三層結(jié)構(gòu)體系

web/business/如何實(shí)現(xiàn)MVC模式,舉例說明!

web/business/dataaccess2.什么是ASP.net中的用戶控件答:用戶控件就是.ascx擴(kuò)展名的東西嘍,能夠拖到不同的頁面中調(diào)用,以節(jié)省代碼.比如登陸可能在多個(gè)頁面上有,就能夠做成用戶控件,可是有一個(gè)問題就是用戶控件拖到不同級別的目錄下后里面的圖片等的相對路徑會(huì)變得不準(zhǔn)確,需要自已寫方法調(diào)整.3.什么叫應(yīng)用程序域?什么是受管制的代碼?什么是強(qiáng)類型系統(tǒng)?什么是裝箱和拆箱?什么是重載?CTS、CLS和CLR分別作何解釋?答:裝箱就是把值類型轉(zhuǎn)成引用類型,從MSIL角度看仿佛是boxing,沒記錯(cuò)的話是把值從堆棧轉(zhuǎn)到堆中.拆箱相反,重載就是指一個(gè)方法名同,參數(shù)個(gè)數(shù)不同,返回值能夠相同的方法.CLR是通用語言運(yùn)行時(shí),其它的不清楚.4.列舉一下你所了解的XML技術(shù)及其應(yīng)用答:XML可是好東西,保存配置,站與站之間的交流,WEBSERVICE都要用它.5.值類型和引用類型的區(qū)別?寫出C#的樣例代碼。答:結(jié)構(gòu)是值類型,類是引用類型,因此傳結(jié)構(gòu)就是值類型的應(yīng)用啦,傳對象或類就是引用類型的,這個(gè)不用多寫了吧.6.ADO.net中常見的對象有哪些?分別描述一下。答:connectioncommandsqladapterdatasetdatatabledataview等等.寫不完了.7.如何理解委托?答:據(jù)說相當(dāng)于函數(shù)指針,定義了委托就能夠在不調(diào)用原方法名稱的情況下調(diào)用那個(gè)方法.msdn中是這樣解釋的:委托具有以下特點(diǎn):委托類似于C++函數(shù)指針,但它是類型安全的。委托允許將方法作為參數(shù)進(jìn)行傳遞。委托可用于定義回調(diào)方法。委托能夠鏈接在一起;例如,能夠?qū)σ粋€(gè)事件調(diào)用多個(gè)方法。方法不需要與委托簽名精確匹配。有關(guān)更多信息,請參見協(xié)變和逆變。C#2.0版引入了匿名方法的概念,此類方法允許將代碼塊作為參數(shù)傳遞,以代替單獨(dú)定義的方法。8.C#中的接口和類有什么異同。答:接口是負(fù)責(zé)功能的定義,項(xiàng)目中經(jīng)過接口來規(guī)范類,操作類以及抽象類的概念!而類是負(fù)責(zé)功能的具體實(shí)現(xiàn)!在類中也有抽象類的定義,抽象類與接口的區(qū)別在于:抽象類是一個(gè)不完全的類,類里面有抽象的方法,屬性,也能夠有具體的方法和屬性,需要進(jìn)一步的專業(yè)化。但接口是一個(gè)行為的規(guī)范,里面的所有東西都是抽象的!一個(gè)類只能夠繼承一個(gè)基類也就是父類,但能夠?qū)崿F(xiàn)多個(gè)接口9.。net中讀寫數(shù)據(jù)庫需要用到哪些類?她們的作用答:這個(gè)類自已能夠?qū)懙陌?你是指基類嗎?那configuration,sqlconnection,sqlcommand等都要用到.10.UDP連接和TCP連接的異同。答:前者只管傳,不論數(shù)據(jù)到不到,無須建立連接.后者保證傳輸?shù)臄?shù)據(jù)準(zhǔn)確,須要連結(jié).11.ASP.net的身份驗(yàn)證方式有哪些?分別是什么原理?答:form認(rèn)證,windows集成認(rèn)證等,原理不清楚.13.什么是code-Behind技術(shù)。答:代碼分離,這是個(gè)明智的東西,像ASP這樣混成一堆很不爽.或者能夠理解成HTML代碼寫在前臺(tái),C#代碼寫在后臺(tái).當(dāng)然前臺(tái)也有腳本,類的調(diào)用等,其實(shí)寫在一起也是能夠的.15..net中讀寫XML的類都?xì)w屬于哪些命名空間?答:System.Xml16.解釋一下UDDI、WSDL的意義及其作用。答:17.什么是SOAP,有哪些應(yīng)用。答:SOAP(SimpleObjectAccessProtocol)簡單對象訪問協(xié)議是在分散或分布式的環(huán)境中交換信息并執(zhí)行遠(yuǎn)程過程調(diào)用的協(xié)議,是一個(gè)基于XML的協(xié)議。使用SOAP,不用考慮任何特定的傳輸協(xié)議(最常見的還是HTTP協(xié)議),能夠允許任何類型的對象或代碼,在任何平臺(tái)上,以任何一直語言相互通信。這種相互通信采用的是XML格式的消息,具體請看:20.常見的調(diào)用webservice方法有哪些?答:能夠從瀏覽器、ASP頁或其它WEB服務(wù)調(diào)用能夠使用HTTP-GET

HTTP-POST訪問WEB服務(wù)也能夠從ASP頁或其它WEB服務(wù)向其它WEB服務(wù)發(fā)出SOAP請求HTTP-GET

HTTP-POST

SOAP

使用WEB服務(wù)代理6.

私有程序集與共享程序集有什么區(qū)別?一個(gè)私有程序集一般為單個(gè)應(yīng)用程序所使用,而且存儲(chǔ)于這個(gè)應(yīng)用程序所在的目錄之中,或此目錄下面的一個(gè)子目錄中。共享程序集一般存儲(chǔ)在全局程序集緩存(GlobalAssemblyCache)之中,這是一個(gè)由.NET運(yùn)行時(shí)所維護(hù)的程序集倉庫。共享程序集一般是對許多應(yīng)用程序都有用的代碼庫,比如.NETFramework類。7.

請解釋進(jìn)程與線程的區(qū)別?進(jìn)程與程序的區(qū)別?一般,一個(gè)應(yīng)用程序?qū)?yīng)于一個(gè)或多個(gè)進(jìn)程,能夠把進(jìn)程看作是該應(yīng)用程序在*作系統(tǒng)中的標(biāo)識;而一個(gè)進(jìn)程一般由多個(gè)線程組成,而線程是*作系統(tǒng)為該應(yīng)用程序分配處理時(shí)間的最小單元。8.

CLR與IL分別是什么含義?CLR:公共語言運(yùn)行時(shí),類似于Java中的JVM,Java虛擬機(jī);在.Net環(huán)境下,各種編程語言使用一種共同的基礎(chǔ)資源環(huán)境,這就是CLR,CLR將直接與*作系統(tǒng)進(jìn)行通信,而編程語言如C#.NET將盡量避免直接與*作系統(tǒng)直接通信,加強(qiáng)了程序代碼的執(zhí)行安全性,能夠這樣看:CLR就是具體的編程語言如:C#.NET與*作系統(tǒng)之間的翻譯,同時(shí)它為具體的編程語言提供了許多資源:IL,中間語言,也稱MSIL,微軟中間語言,或CIL,通用中間語言;所有.NET源代碼(不論用哪種語言編寫)在進(jìn)行編譯時(shí)都被編譯成IL。在應(yīng)用程序運(yùn)行時(shí)被即時(shí)(Just-In-Time,JIT)編譯器處理成為機(jī)器碼,被解釋及執(zhí)行。10.請解釋ASP。NET中以什么方式進(jìn)行數(shù)據(jù)驗(yàn)證

A中有非空驗(yàn)證,比較驗(yàn)證,取值范圍驗(yàn)證,正則表示式驗(yàn)證及客戶自定義驗(yàn)證五大控件,另還有一個(gè)集中驗(yàn)證信息處理控件11.

WEB控件能夠激發(fā)服務(wù)端事件,請談?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)我們在點(diǎn)擊客戶端控件時(shí),采用提交表單的形式將數(shù)據(jù)直接傳回到務(wù)端只有經(jīng)過自動(dòng)傳回才能實(shí)現(xiàn)服務(wù)端事件的機(jī)制,如果沒有自動(dòng)回傳機(jī)制就只能調(diào)用客戶端事件,而不能調(diào)用服務(wù)端事件12.

WEB控件及HTML服務(wù)端控件能否調(diào)用客戶端方法?如果能,請解釋如何調(diào)用?能夠調(diào)用例如:<asp:TextBoxid="TextBox1"onclick="clientfunction();"runat="server"></asp:TextBox><INPUTid="Button2"value="Button"name="Button2"runat="server"onclick="clientfunction();">13.

請解釋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)策略.14.

請解釋ASP。NET中的web頁面與其隱藏類之間的關(guān)系?一個(gè)ASP.NET頁面一般都對應(yīng)一個(gè)隱藏類,一般都在ASP.NET頁面的聲明中指定了隱藏類例如一個(gè)頁面Tst1.aspx的頁面聲明如下<%@Pagelanguage="c#"Codebehind="Tst1.aspx.cs"AutoEventWireup="false"Inherits="T1.Tst1"%>Codebehind="Tst1.aspx.cs"表明經(jīng)編譯此頁面時(shí)使用哪一個(gè)代碼文件Inherits="T1.Tst1"表用運(yùn)行時(shí)使用哪一個(gè)隱藏類15.

什么是viewstate,能否禁用?是否所用控件都能夠禁用?Viewstate是保存狀態(tài)的一種機(jī)制,EnableViewState屬性設(shè)置為false即可禁用16.

當(dāng)發(fā)現(xiàn)不能讀取頁面上的輸入的數(shù)據(jù)時(shí)很有可能是什么原因造成的?怎么解決很有可能是在Page_Load中數(shù)據(jù)處理時(shí)沒有進(jìn)行Page的IsPostBack屬性判斷17.

請解釋什么是上下文對象,在什么情況下要使用上下文對象上下文對象是指HttpContext類的Current屬性,當(dāng)我們在一個(gè)普通類中要訪問內(nèi)置對象(Response,Request,Session,Server,Appliction等)時(shí)就要以使用此對象18.

請解釋轉(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)1.請簡述一下用Socket進(jìn)行同步通訊編程的詳細(xì)步驟1、在應(yīng)用程序和遠(yuǎn)程設(shè)備中使用協(xié)議和網(wǎng)絡(luò)地址初始化套接字2、在應(yīng)用程序中經(jīng)過指定端口和地址建立監(jiān)聽3、遠(yuǎn)程設(shè)備發(fā)出連接請求4、應(yīng)用程序接受連接產(chǎn)生通信scoket5、應(yīng)用程序和遠(yuǎn)程設(shè)備開始通訊(在通訊中應(yīng)用程序?qū)炱鹬钡酵ㄓ嵔Y(jié)束)6、通訊結(jié)束,關(guān)閉應(yīng)用程序和遠(yuǎn)程設(shè)備的Socket回收資源1、在C#中,string

str

=

null

string

str

=

“”

請盡量使用文字或圖象說明其中的區(qū)別。

string

str

=

null

是不給她分配內(nèi)存空間,而string

str

=

“”給它分配長度為空字符竄的內(nèi)存空間.

2、請?jiān)斒鲈赿otnet中類(class)與結(jié)構(gòu)(struct)的異同:(10分)

Class能夠被實(shí)例化,屬于引用類型,是分配在內(nèi)存的堆上的,Struct屬于值類型,是分配在內(nèi)存的棧上的.

3、根據(jù)委托(delegate)的知識,請完成以下用戶控件中代碼片段的填寫:(10)

namespace

test

{

public

delegate

void

OnDBOperate();

public

class

UserControlBase

:

System.Windows.Forms.UserControl

{

public

event

OnDBOperate

OnNew;

privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs

e)

{

if(e.Button.Equals(BtnNew))

{

//請?jiān)谝韵卵a(bǔ)齊代碼用來調(diào)用OnDBOperate委托簽名的OnNew事件。

}

}

}

}

____________________________________________________________________

if(

OnNew

!=

null

)

OnNew(

this,

e

);

4、分析以下代碼,完成填空(10分)

string

strTmp

=

"abcdefg某某某";

int

i=

System.Text.Encoding.Default.GetBytes(strTmp).Length;

int

j=

strTmp.Length;

以上代碼執(zhí)行完后,i=

j=

i還真的不知道,

j=10

5、SQLSERVER服務(wù)器中,給定表

table1

中有兩個(gè)字段

ID、LastUpdateDate,ID表示更新的事務(wù)號,

LastUpdateDate表示更新時(shí)的服務(wù)器時(shí)間,請使用一句SQL語句獲得最后更新的事務(wù)號。(10)

select

top

ID

from

table1

order

by

LastUpdateData

desc

8、簡要談一下您對微軟.NET

構(gòu)架下remoting和webservice兩項(xiàng)技術(shù)的理解以及實(shí)際中的應(yīng)用。(10)

remoting是.net

中用來跨越machine,

process,

appdomain

進(jìn)行方法調(diào)用的技術(shù),對于三成結(jié)構(gòu)的程序,就能夠使用remoting技術(shù)來構(gòu)建.它是分布應(yīng)用的基礎(chǔ)技術(shù).相當(dāng)于以前的DCOM

Web

Service是一種構(gòu)建應(yīng)用程序的普通模型,并能在所有支持internet網(wǎng)通訊的操作系統(tǒng)上實(shí)施。Web

Service令基于組件的開發(fā)和web的結(jié)合達(dá)到最佳,基于組件的對象模型

9.什么叫做SQL注入,如何防止?請舉例說明。利用sql關(guān)鍵字對網(wǎng)站進(jìn)行攻擊。過濾關(guān)鍵字'等所謂SQL注入(SQLInjection),就是利用程序員對用戶輸入數(shù)據(jù)的合法性檢測不嚴(yán)或不檢測的特點(diǎn),故意從客戶端提交特殊的代碼,從而收集程序及服務(wù)器的信息,從而獲取想得到的資料。http://localhost/lawjia/show.asp?ID=444anduser>0,這時(shí),服務(wù)器運(yùn)行Select*from表名where字段=444anduser>0這樣的查詢,當(dāng)然,這個(gè)語句是運(yùn)行不下去的,肯定出錯(cuò),錯(cuò)誤信息如下:·錯(cuò)誤類型:MicrosoftOLEDBProviderforODBCDrivers(0x80040E07)[Microsoft][ODBCSQLServerDriver][SQLServer]將nvarchar值'sonybb'轉(zhuǎn)換為數(shù)據(jù)類型為int的列時(shí)發(fā)生語法錯(cuò)誤。a產(chǎn)生一個(gè)int數(shù)組,長度為100,并向其中隨機(jī)插入1-100,而且不能重復(fù)。int[]intArr=newint[100];ArrayListmyList=newArrayList();Randomrnd=newRandom();while(myList.Count<100){intnum=rnd.Next(1,101);if(!myList.Contains(num))myList.Add(num);}for(inti=0;i<100;i++)intArr[i]=(int)myList[i];

20.請敘述類與結(jié)構(gòu)的區(qū)別。1)、結(jié)構(gòu)是值類型;2)、結(jié)構(gòu)不支持繼承;3)、結(jié)構(gòu)不能定義默認(rèn)的構(gòu)造函數(shù);4)、結(jié)構(gòu)不能定義析構(gòu)函數(shù);5)、結(jié)構(gòu)不能使用初始值設(shè)置域值。========================================================================================================面試集合

1:維護(hù)數(shù)據(jù)庫的完整性、一致性、你喜歡用觸發(fā)器還是自寫業(yè)務(wù)邏輯?為什么答:盡可能用約束(包括CHECK、主鍵、唯一鍵、外鍵、非空字段)實(shí)現(xiàn),這種方式的效率最好;其次用觸發(fā)器,這種方式能夠保證無論何種業(yè)務(wù)系統(tǒng)訪問數(shù)據(jù)庫都能維持?jǐn)?shù)據(jù)庫的完整性、一致性;最后再考慮用自寫業(yè)務(wù)邏輯實(shí)現(xiàn),但這種方式效率最低、編程最復(fù)雜,當(dāng)為下下之策2:ADO。NET相對于ADO等主要有什么改進(jìn)?答ADO數(shù)據(jù)以Recordset形式存儲(chǔ)ADO.NET以DataSet形式存儲(chǔ)Recordset對數(shù)據(jù)庫持續(xù)連接訪問ADO.NET提供對數(shù)據(jù)庫斷開連接ADO.NET與ADO相比,優(yōu)勢在于提供了數(shù)據(jù)集和數(shù)據(jù)適配器,有利于實(shí)現(xiàn)分布式處理,降低對數(shù)據(jù)庫服務(wù)器資源的消耗。3:ASP。NET與ASP相比,主要有哪些進(jìn)步?答

能夠使用強(qiáng)類型語言頁面是編譯,執(zhí)行速度快,增加安全性和可靠性,經(jīng)過繼承機(jī)制來支持代碼的重用,提供聲明性服務(wù)器控件減少代碼行數(shù)Asp需要解釋,執(zhí)行速度慢,重用代碼不方便,沒有調(diào)試機(jī)制4:C#中的委托是什么?事件是不是一種委托?答委托本質(zhì)上是一種“方法接口”,它相當(dāng)于C/C++中的函數(shù)指針,當(dāng)然它比函數(shù)指針安全,在C#中一般見于事件處理。與JAVA相比,能夠避免使用大量小粒度的匿名類。(不過,可能微軟就是使用類似于JAVA的匿名類實(shí)現(xiàn)委托的,只不過從字面上看起不是那么回事罷了,誰知道呢?)事件不是委托,不過由于事件的性質(zhì)決定了處理它的程序邏輯能訪問的參數(shù),因此,在C#中處理事件的邏輯都包裝為委托(一種“方法接口”)。實(shí)際上,如果你處理自定義的事件,就像JAVA中那樣用接口實(shí)現(xiàn)也是能夠的,不過這么做在C#一般沒有什么特別的好處。5:new有幾種用法第一種:newClass();第二種:覆蓋方法publicnewXXXX(){}第三種:new約束指定泛型類聲明中的任何類型參數(shù)都必須有公共的無參數(shù)構(gòu)造函數(shù)。6:如何把一個(gè)array復(fù)制到arrayList里答foreach(objectoinarray)arrayList.Add(o);7:datagrid.datasouse能夠連接什么數(shù)據(jù)源答[dataset,datatable,dataview]

dataset,datatable,dataview,IList8:概述反射和序列化答反射:程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對象。您能夠使用反射動(dòng)態(tài)地創(chuàng)立類型的實(shí)例,將類型綁定到現(xiàn)有對象,或從現(xiàn)有對象中獲取類型。然后,能夠調(diào)用類型的方法或訪問其字段和屬性答序列化:序列化是將對象轉(zhuǎn)換為容易傳輸?shù)母袷降倪^程。例如,能夠序列化一個(gè)對象,然后使用HTTP經(jīng)過Internet在客戶端和服務(wù)器之間傳輸該對象。在另一端,反序列化將從該流重新構(gòu)造對象。9:概述o/rmapping的原理答利用反射,配置將類于數(shù)據(jù)庫表映射10:類成員有()種可訪問形式答可訪問性:public,protected,private,internal11:用sealed修飾的類有什么特點(diǎn)答sealed修飾符用于防止從所修飾的類派生出其它類。如果一個(gè)密封類被指定為其它類的基類,則會(huì)發(fā)生編譯時(shí)錯(cuò)誤。密封類不能同時(shí)為抽象類。sealed修飾符主要用于防止非有意的派生,可是它還能促使某些運(yùn)行時(shí)優(yōu)化。具體說來,由于密封類永遠(yuǎn)不會(huì)有任何派生類,因此對密封類的實(shí)例的虛擬函數(shù)成員的調(diào)用能夠轉(zhuǎn)換為非虛擬調(diào)用來處理。11:列舉ADO.NET中的五個(gè)主要對象,并簡單描述connection,command,dataReader,dataAdapter,dataset...12:執(zhí)行下面代碼后:

StringstrTemp="abcdefg某某某";IntiSystem.Text.Encoding.Default.GetBytes(strTemp).Length;Intj=strTemp.Length;問:i=(14);j=(11)i=(14);j=(11)中文兩個(gè)字節(jié)13:C#中,stringstr=null與stringstr="",請盡量用文字說明區(qū)別。(要點(diǎn):說明詳細(xì)的內(nèi)存空間分配)答stringstr=null是不分配內(nèi)存空間,而stringstr=""給它分配長度為空字符串的內(nèi)存空間。14:概述.NET里對remoting和webservice兩項(xiàng)技術(shù)的理解和實(shí)際中的應(yīng)用。答遠(yuǎn)程邏輯調(diào)用,remoing接口只能用在.net中15:什么是code-behind技術(shù)答aspxandcs

代碼隱藏16:概述三層結(jié)構(gòu)體系答表示層數(shù)據(jù)層業(yè)務(wù)層17:用.net做B/S結(jié)構(gòu)的系統(tǒng),您是用幾層結(jié)構(gòu)來開發(fā),每一層之間的關(guān)系以及為什么要這樣分層?答:一般為3層

數(shù)據(jù)訪問層,業(yè)務(wù)層,表示層。數(shù)據(jù)訪問層對數(shù)據(jù)庫進(jìn)行增刪查改。業(yè)務(wù)層一般分為二層,業(yè)務(wù)表觀層實(shí)現(xiàn)與表示層的溝通,業(yè)務(wù)規(guī)則層實(shí)現(xiàn)用戶密碼的安全等。表示層為了與用戶交互例如用戶添加表單。優(yōu)點(diǎn):

分工明確,條理清晰,易于調(diào)試,而且具有可擴(kuò)展性。缺點(diǎn):

增加成本。18:什么是ASP.net中的用戶控件答:用戶控件就是.ascx擴(kuò)展名的東西嘍,能夠拖到不同的頁面中調(diào)用,以節(jié)省代碼.比如登陸可能在多個(gè)頁面上有,就能夠做成用戶控件,可是有一個(gè)問題就是用戶控件拖到不同級別的目錄下后里面的圖片等的相對路徑會(huì)變得不準(zhǔn)確,需要自已寫方法調(diào)整.19:什么叫應(yīng)用程序域?什么是受管制的代碼?什么是強(qiáng)類型系統(tǒng)?什么是裝箱和拆箱?什么是重載?CTS、CLS和CLR分別作何解釋?答應(yīng)用程序域能夠理解為一種輕量級進(jìn)程。起到安全的作用。占用資源小

受管制的代碼:unsafe:非托管代碼。不經(jīng)過CLR運(yùn)行。

強(qiáng)類型系統(tǒng)RTTI:類型識別系統(tǒng)。

裝箱就是把值類型到引用類型的轉(zhuǎn)換

拆箱就是引用類型到值類型的轉(zhuǎn)換

重載

方法名相同不用個(gè)數(shù)的參數(shù)或者指定不同參數(shù)類型

CTS:通用語言系統(tǒng)。CLS:通用語言規(guī)范。CLR:公共語

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論