2023年net面試題庫(kù)全_第1頁(yè)
2023年net面試題庫(kù)全_第2頁(yè)
2023年net面試題庫(kù)全_第3頁(yè)
2023年net面試題庫(kù)全_第4頁(yè)
2023年net面試題庫(kù)全_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

一、c#

1.請(qǐng)解釋在new與override的區(qū)別?

在C#中,new關(guān)鍵字可用作運(yùn)算符或修飾符。

?new運(yùn)算符用于在堆上創(chuàng)建對(duì)象和調(diào)用構(gòu)造函數(shù)。

?new修飾符用于隱藏基類成員的繼承成員。

使用override修飾符來(lái)修改方法、屬性、索引器或事件。重寫(xiě)方法提供從基類繼承的成員

的新實(shí)現(xiàn)。由重寫(xiě)聲明重寫(xiě)的方法稱為重寫(xiě)基方法。重寫(xiě)基方法必須與重寫(xiě)方法具有相同的

署名。

不能重寫(xiě)非虛方法或靜態(tài)方法。重寫(xiě)基方法必須是虛擬的、抽象的或重寫(xiě)的。

重寫(xiě)聲明不能更改虛方法的可訪問(wèn)性。重寫(xiě)方法和虛方法必須具有相同的訪問(wèn)級(jí)修飾符。不

能使用下列修飾符修改重寫(xiě)方法:newstaticvirtualabstract重寫(xiě)屬性聲明必須指定

與繼承屬性完全相同的訪問(wèn)修飾符、類型和名稱,并且重寫(xiě)屬性必須是虛擬的、抽象的或重

寫(xiě)的。

2.請(qǐng)解釋virtual的含義?

virtual關(guān)鍵字用于修改方法或?qū)傩缘穆暶鳎谶@種情況下,方法或?qū)傩员环Q作虛擬成

員。虛擬成員的實(shí)現(xiàn)可由派生類中的重寫(xiě)成員更改。

調(diào)用虛方法時(shí),將為重寫(xiě)成員檢查該對(duì)象的運(yùn)營(yíng)時(shí)類型。將調(diào)用大部分派生類中的該重寫(xiě)成

員,假如沒(méi)有派生類重寫(xiě)該成員,則它也許是原始成員。默認(rèn)情況下,方法是非虛擬的。不

能重寫(xiě)非虛方法。不能將virtual修飾符與以下修飾符一起使用:staticabstractoverride

除了聲明和調(diào)用語(yǔ)法不同外,虛擬屬性的行為與抽象方法同樣。

?在靜態(tài)屬性上使用virtual修飾符是錯(cuò)誤的。

?通過(guò)涉及使用override修飾符的屬性聲明,可在派生類中重寫(xiě)虛擬繼承屬性

3.請(qǐng)解釋.net采用委托實(shí)現(xiàn)的事件模型與JAVA中采用接口實(shí)現(xiàn)的事件模型有什么區(qū)別,

以圖示方式解釋。

4.請(qǐng)解釋接口的顯式實(shí)現(xiàn)有什么意義?

接口是其他類型為保證它們支持某些操作而實(shí)現(xiàn)的引用類型。接口從不直接創(chuàng)建并且

沒(méi)有實(shí)際的表達(dá)形式,其他類型必須轉(zhuǎn)換為接口類型。一個(gè)接口定義一個(gè)協(xié)定。實(shí)現(xiàn)接口的

類或結(jié)構(gòu)必須遵守其協(xié)定。接口可以包含方法、屬性、索引器和事件作為成員。

5.請(qǐng)以圖示方式解釋.netframework?

VB

C++

c#

JScript

CommonLanguageSpecification

XMLWeb

services

WebForms

WindowsForms

DataandXML

BaseClassLibrary

CLR

CLI

VisualStudio.NET

6.什么是.net?

,net是一種平臺(tái)和框架,.net不是單純的語(yǔ)言也不是單純的工具,它是從底層平臺(tái)開(kāi)始

構(gòu)建起來(lái)的一個(gè)整體框架

6.Ref與out有什么不同?

方法參數(shù)上的ref方法參數(shù)關(guān)鍵字使方法引用傳遞到方法的同一個(gè)變量。當(dāng)控制傳

遞回調(diào)用方法時(shí),在方法中對(duì)參數(shù)所做的任何更改都將反映在該變量中。若要使用ref參

數(shù),必須將參數(shù)作為ref參數(shù)顯式傳遞到方法。ref參數(shù)的值被傳遞到ref參數(shù)。傳遞到ref

參數(shù)的參數(shù)必須最先初始化。將此方法與out參數(shù)相比,后者的參數(shù)在傳遞到out參數(shù)之

前不必顯式初始化。屬性不是變量,不能作為ref參數(shù)傳遞。假如兩種方法的聲明僅在它

們對(duì)ref的使用方面不同,則將出現(xiàn)重載.但是,無(wú)法定義僅在ref和out方面不同的重

載。

方法參數(shù)上的out方法參數(shù)關(guān)鍵字使方法引用傳遞到方法的同一個(gè)變量。當(dāng)控制傳遞

回調(diào)用方法時(shí),在方法中對(duì)參數(shù)所做的任何更改都將反映在該變量中。

當(dāng)希望方法返回多個(gè)值時(shí),聲明out方法非常有用。使用out參數(shù)的方法仍然可以返回一

個(gè)值。一個(gè)方法可以有一個(gè)以上的out參數(shù)。若要使用out參數(shù),必須將參數(shù)作為out參

數(shù)顯式傳遞到方法。out參數(shù)的值不會(huì)傳遞到out參數(shù)。不必初始化作為out參數(shù)傳遞的

變量。然而,必須在方法返回之前為out參數(shù)賦值。屬性不是變量,不能作為out參數(shù)傳

遞。假如兩個(gè)方法的聲明僅在out的使用方面不同,則會(huì)發(fā)生重載。但是,無(wú)法定義僅在ref

和out方面不同的重載。

7.值類型與引用類型有什么不同?請(qǐng)舉例說(shuō)明?并分別列舉幾種相應(yīng)的數(shù)據(jù)類型。

大多數(shù)編程語(yǔ)言提供內(nèi)置的數(shù)據(jù)類型(比如整數(shù)和浮點(diǎn)數(shù)),這些數(shù)據(jù)類型會(huì)在作為參數(shù)傳

遞時(shí)被復(fù)制(即,它們通過(guò)值來(lái)傳遞)。在.NETFramework中,這些稱為值類型。您可以

創(chuàng)建值類型的實(shí)例,將它們作為參數(shù)傳遞,將它們存儲(chǔ)為局部變量,或?qū)⑺鼈兇鎯?chǔ)在另一值

類型或?qū)ο蟮淖侄沃?。值類型沒(méi)有與存儲(chǔ)類的實(shí)例相關(guān)的系統(tǒng)開(kāi)銷,并且它們不需要構(gòu)造函

數(shù)。值類型可以有字段、屬性和事件。它們也有靜態(tài)和非靜態(tài)方法。當(dāng)它們被裝箱時(shí),會(huì)從

System.ValueType繼承虛方法,并可實(shí)現(xiàn)零個(gè)或更多接口。值類型是密封的,這意味著不能

從它們派生出其他類型。但是,可以直接對(duì)值類型定義虛方法,并且既可對(duì)該類型的已裝箱

形式,也可對(duì)未裝箱形式調(diào)用這些方法。盡管不能從一種值類型派生出另一種類型,但是當(dāng)

所用語(yǔ)言解決虛方法比解決非虛方法或靜態(tài)方法更方便時(shí),可以對(duì)值類型定義虛方法。

引用類型的變量又稱為對(duì)象,可存儲(chǔ)對(duì)實(shí)際數(shù)據(jù)的引用。以下用于聲明引用類型的關(guān)鍵字:

?class

?interface

?delegate

8.結(jié)構(gòu)體是值類型還是引用類型的?

是值類型。

9.C#中有沒(méi)有靜態(tài)構(gòu)造函數(shù),假如有是做什么用的?

有.靜態(tài)構(gòu)造函數(shù)用于初始化類。在創(chuàng)建第一個(gè)實(shí)例或引用任何靜態(tài)成員之前,

將自動(dòng)調(diào)用靜態(tài)構(gòu)造函數(shù)來(lái)初始化類。靜態(tài)構(gòu)造函數(shù)既沒(méi)有訪問(wèn)修飾符,也沒(méi)有參數(shù)。在創(chuàng)

建第一個(gè)實(shí)例或引用任何靜態(tài)成員之前,將自動(dòng)調(diào)用靜態(tài)構(gòu)造函數(shù)來(lái)初始化類。無(wú)法直接調(diào)

用靜態(tài)構(gòu)造函數(shù)。在程序中,用戶無(wú)法控制何時(shí)執(zhí)行靜態(tài)構(gòu)造函數(shù)。靜態(tài)構(gòu)造函數(shù)的典型用

途是:當(dāng)類使用日記文獻(xiàn)時(shí),將使用這種構(gòu)造函數(shù)向日記文獻(xiàn)中寫(xiě)入項(xiàng)。

10.在C#中如何實(shí)現(xiàn)多態(tài)?

“多態(tài)性”指定義具有功能不同但名稱相同的方法或?qū)傩缘亩鄠€(gè)類的能力,這些

類可由客戶端代碼在運(yùn)營(yíng)時(shí)互換使用。大部分面向?qū)ο蟮木幊滔到y(tǒng)都通過(guò)繼承提供多態(tài)性。

基于繼承的多態(tài)性涉及在基類中定義方法并在派生類中使用新實(shí)現(xiàn)重寫(xiě)它們。

11.什么是反射?如何實(shí)現(xiàn)反射?

反射則提供了封裝程序集、模塊和類型的對(duì)象。您可以使用反射動(dòng)態(tài)地創(chuàng)建類型的實(shí)例,將

類型綁定到現(xiàn)有對(duì)象,或從現(xiàn)有對(duì)象中獲取類型。然后,可以調(diào)用類型的方法或訪問(wèn)其字段

和屬性。通過(guò)反射命名空間中的類以及System.Type,您可以獲取有關(guān)已加載的程序集和在

其中定義的類型(如類、接口和值類型)的信息。您也可以使用反射在運(yùn)營(yíng)時(shí)創(chuàng)建類型實(shí)例,

然后調(diào)用和訪問(wèn)這些實(shí)例。

12.請(qǐng)解釋流與文獻(xiàn)有什么不同?

文獻(xiàn)是一些具有永久存儲(chǔ)及特定順序的字節(jié)組成的一個(gè)有序的、具有名稱的集合。因此,對(duì)

于文獻(xiàn),人們常會(huì)想到目錄途徑、磁盤(pán)存儲(chǔ)、文獻(xiàn)和目錄名等方面。相反,流提供一種向后

備存儲(chǔ)器寫(xiě)入字節(jié)和從后備存儲(chǔ)器讀取字節(jié)的方式,后備存儲(chǔ)器可認(rèn)為多種存儲(chǔ)媒介之一。

正如除磁盤(pán)外存在多種后備存儲(chǔ)器同樣,除文獻(xiàn)流之外也存在多種流。例如,還存在網(wǎng)絡(luò)流、

內(nèi)存流和磁帶流等。

13.程序集與命名空間有什么不同?

命名空間是用于避免命名沖突,專用于組織代碼,當(dāng)代碼要在其他某個(gè)應(yīng)用程序中重用時(shí),可

以減少?gòu)?fù)雜性。

程序集是重用代碼的一種方式

不同:可以將相同命名空間中的類部署到不同的程序集中,也可以命名空間中的類部署到一

個(gè)程序集中

命名空間程序集

有邏輯編譯時(shí)機(jī)制有物理編譯時(shí)機(jī)制

不是運(yùn)營(yíng)時(shí)實(shí)體是運(yùn)營(yíng)時(shí)實(shí)體

為源代碼元素的名稱提供邏輯結(jié)構(gòu)為可執(zhí)行文獻(xiàn)的運(yùn)營(yíng)時(shí)提供物理結(jié)構(gòu)

14.請(qǐng)編寫(xiě)一個(gè)捕獲所有錯(cuò)誤的錯(cuò)誤解決代碼

15.

16.Try{

17.…

18.)catch(Exceptione){}

19.委托與事件是什么關(guān)系?為什么要使用委托

?委托提供了封裝方法的方式,事件是某動(dòng)作己發(fā)生的說(shuō)明,事件是建立于委托之上的

?程序運(yùn)營(yíng)時(shí)同一個(gè)委托可以用來(lái)調(diào)用不同的方法只要改變它的引用方法即可

?同一個(gè)委托可以用來(lái)調(diào)用不同的方法,只要改變它引用的方法即可,因此委托調(diào)節(jié)器用的方

法不是在編譯時(shí)決定的,而是在運(yùn)營(yíng)時(shí)擬定的.

20.一個(gè)類中有幾種元素?

類由字段,屬性,方法組成

21.請(qǐng)解釋這種語(yǔ)法現(xiàn)象Session["name"]=20;

給類的索引器賦值.

22.裝箱與取消裝箱是什么含義?

裝箱是值類型到object類型或到該值類型所實(shí)現(xiàn)的任何接口類型的隱式轉(zhuǎn)換。將一個(gè)值的

值裝箱會(huì)分派一個(gè)對(duì)象實(shí)例并將該值復(fù)制到新的對(duì)象中。

取消裝箱是從object類型到值類型或從接口類型到實(shí)現(xiàn)該接口的值類型的顯式轉(zhuǎn)換。取消

裝箱操作涉及:

?檢核對(duì)象實(shí)例,保證它是給定值類型的一個(gè)裝箱值。

?將該值從實(shí)例復(fù)制到值類型變量中。

23.一個(gè)構(gòu)造函數(shù)能否調(diào)用另一個(gè)構(gòu)造函數(shù),假如能請(qǐng)寫(xiě)出簡(jiǎn)樸的代碼

能.

classclass1

(

inty;

publicclass1(){

newclass1(5);

)

publicclass1(inti)

(

this.y=i;

)

publicvoidx(){

Console.WriteLine(y.ToStringO);

)

staticvoidMain(stringlJargs)

//

class1cl=newclass1(5);

cl.x();

)

1

24.請(qǐng)編寫(xiě)創(chuàng)建一個(gè)線程的代碼。

usingSystem;

usingSystem.IO;

usingSystem.Threading;

classMyThread{

publicintcount;

stringthrdName;

publicMyThread(stringname){

count=0;

thrdName=name;

)

publicvoidrun(){

Console.WriteLine(thrdName+"starting.n);

do{

Thread.Sleep(500);

Console.WriteLine("In',4-thrdName+u,countis"+count);

count++;

}while(count<10);

Console.WriteLine(thrdName+nterminating.n);

classMultiThread{

publicstaticvoidMain(){

Console.WriteLine("Mainthreadstarting.");

MyThreadmt=newMyThread("Child#ln);

ThreadnewThrd=newThread(newThreadStart(mt.run));

newThrd.Start();

do{

Console.Write(n.0);

Thread.Sleep(l00);

}while(mt.count!=l0);

Console.WriteLine(uMainthreadending.");

)

)

25.Params是什么含義?

params關(guān)鍵字可以指定在參數(shù)數(shù)目可變處采用參數(shù)的方法參數(shù)。在方法聲明中的params

關(guān)鍵字之后不允許任何其他參數(shù),并且在方法聲明中只允許一個(gè)params關(guān)鍵字。

26.C#中有沒(méi)有運(yùn)算符重載?能否使用指針?

?重載操作符意味著使該操作符具有不同的行為

?使用操作符可以使方程式簡(jiǎn)樸易懂

?重載運(yùn)算符使用operator關(guān)鍵字來(lái)創(chuàng)建一個(gè)運(yùn)算符方法

能使用指針,在C#中很少需要使用指針,但仍有一些需要使用的情況。例如,在下列情況

中使用允許采用指針的不安全上下文是對(duì)的的:

?解決磁盤(pán)上的現(xiàn)有結(jié)構(gòu)

9涉及內(nèi)部包含指針的結(jié)構(gòu)的高級(jí)COM或平臺(tái)調(diào)用方案

?性能關(guān)鍵代碼

不鼓勵(lì)在其他情況下使用不安全上下文。具體地說(shuō),不應(yīng)當(dāng)使用不安全上下文嘗試在C#中

編寫(xiě)C代碼。

27.C#中有很多類被定義為public有什么意義?

Public關(guān)鍵字將公共訪問(wèn)權(quán)限授予一個(gè)或多個(gè)被聲明的編程元素。對(duì)公共元素的可訪問(wèn)性

沒(méi)有限制。

28.Internal修飾符有什么含義?

internal關(guān)鍵字是類型和類型成員的訪問(wèn)修飾符。內(nèi)部成員只有在同一程序集中的文獻(xiàn)內(nèi)才

是可訪問(wèn)的。內(nèi)部訪問(wèn)通常用于基于組件的開(kāi)發(fā),由于它使一組組件可以以私有方式進(jìn)行合

作,而不必向應(yīng)用程序代碼的其余部分公開(kāi)。例如,用于生成圖形用戶界面的框架可以提供

“控件”類和“窗體”類,這些類通過(guò)使用品有內(nèi)部訪問(wèn)能力的成員進(jìn)行合作。由于這些成

員是內(nèi)部的,它們不向正在使用框架的代碼公開(kāi)。在定義具有內(nèi)部訪問(wèn)能力的成員的程序集

外部引用該成員是錯(cuò)誤的。

29.JAVA的代碼是半編譯半解釋的C#的代碼是否也是這樣

C#源碼通過(guò)語(yǔ)言編譯器執(zhí)行第一次編譯,變?yōu)橹虚g語(yǔ)言,然后再由CLR編譯成可

執(zhí)行代碼.

30.私有程序集與共享程序集有什么區(qū)別?

私有程序集:

?默認(rèn)情況下,C#程序編譯為私有程序集

?需要放在應(yīng)用程序所在的文獻(xiàn)夾中

?程序集的名稱在應(yīng)用程序中應(yīng)當(dāng)是唯一的

共享程序集:

?可以被不同的應(yīng)用程序共享

?在所有使用程序集的應(yīng)用程序中,程序集名稱應(yīng)當(dāng)是唯一的

?放在全局程序集緩存中

31.請(qǐng)解釋進(jìn)程與線程的區(qū)別?進(jìn)程與程序的區(qū)別?

用最簡(jiǎn)短的話來(lái)說(shuō),進(jìn)程就是當(dāng)前運(yùn)營(yíng)的應(yīng)用程序。線程是操作系統(tǒng)向其分派解決器時(shí)間的

基本單位。線程可執(zhí)行進(jìn)程的任何一部分代碼,涉及當(dāng)前由另一線程執(zhí)行的部分。

32.CLR與IL分別是什么含義?

CLR(公共語(yǔ)言運(yùn)營(yíng)庫(kù)):能管理內(nèi)存,可以輕松地設(shè)計(jì)其對(duì)象可以跨語(yǔ)言互動(dòng)的組件和應(yīng)用程

序,編譯一次,并可以在任何支持運(yùn)營(yíng)庫(kù)的CPU和操作系統(tǒng)上運(yùn)營(yíng),跨語(yǔ)言集成(特別是

跨語(yǔ)言繼承)

IL(中間語(yǔ)言):可用于語(yǔ)言互操作性,IL不是字節(jié)代碼,但很接近字節(jié)代碼,因此執(zhí)行應(yīng)用

程序時(shí),IL到機(jī)器代碼的轉(zhuǎn)換要快很多。獨(dú)立于CPU的指令集。由CLR轉(zhuǎn)換為特定于CPU

的代碼。

33.對(duì)象能否調(diào)用靜態(tài)方法

對(duì)象能調(diào)用靜態(tài)方法。

34.請(qǐng)說(shuō)明如下代碼的結(jié)果

classFather{

voidshow(){

Console.Write("Father");

)

staticvoidMain(stringlJargs){

Fatherobj=newChild();

obj.show();

classChild:Father{

voidshow(){

Console.Write("Child");

)

)

執(zhí)行結(jié)果為:Father.

二、ASP.NET

1.ASP.NET中的身份驗(yàn)證有那些?請(qǐng)解釋。

(1)Windows驗(yàn)證:指定Windows身份驗(yàn)證作為默認(rèn)的身份驗(yàn)證模式.假如是任何形式的

Internet信息服務(wù)(HS)身份驗(yàn)證,則使用此模式.

(2)Forms驗(yàn)證:指定基于ASP。NET窗體的身份驗(yàn)證作為默認(rèn)的身份驗(yàn)證模式。

⑶Passport:指定MicrosoftPassport身份驗(yàn)證作為默認(rèn)的身份驗(yàn)證模式。

(4)None:不指定身份驗(yàn)證,僅合用于匿名用戶,或者應(yīng)用程序可以解決事件以提供它們自

己的身份驗(yàn)證情況。

2.什么是WEB控件?使用WEB控件有那些優(yōu)勢(shì)?

WEB控件是能拖放在WEB頁(yè)面上的控件

WEB控件分為:內(nèi)部控件,列表控件,復(fù)雜控件,驗(yàn)證控件

?WEB控件優(yōu)勢(shì):Web控件是對(duì)象

-與對(duì)象同樣,Web控件擁有方法和屬性,并且響應(yīng)事件

-一旦將Web控件涉及在Web頁(yè)中,就可以設(shè)立其屬性并調(diào)用其方法

-可認(rèn)為Web控件編寫(xiě)服務(wù)器端代碼以響應(yīng)在客戶端上發(fā)生的事件

3.請(qǐng)解釋ASP。NET中以什么方式進(jìn)行數(shù)據(jù)驗(yàn)證?

是以驗(yàn)證控件進(jìn)行數(shù)據(jù)驗(yàn)證的。

4.請(qǐng)談?wù)剬?duì)正則表達(dá)式的見(jiàn)解?

能將一些比較復(fù)雜的驗(yàn)證邏輯以簡(jiǎn)樸的驗(yàn)證表達(dá)式驗(yàn)證.

5.ASP,NET中共有幾種類型的控件?各有什么區(qū)別?

WEB控件分為:內(nèi)部控件,列表控件,復(fù)雜控件,驗(yàn)證控件

內(nèi)部控件-內(nèi)部控件的使用方法與HTML控件相同,它們映射到HTML元素并通過(guò)使用

runat="server"屬性在服務(wù)器上執(zhí)行

列表控件-用于在Web頁(yè)中創(chuàng)建數(shù)據(jù)列表

復(fù)雜控件--?當(dāng)希望控件擁有復(fù)雜的功能或使用HTML元素?zé)o法創(chuàng)建的功能豐富的用戶界

面時(shí),可以使用復(fù)雜控件

驗(yàn)證控件-輸入控件的數(shù)據(jù)需要進(jìn)行準(zhǔn)確性和取值范圍方面的檢查

6.WEB控件可以激發(fā)服務(wù)端事件,請(qǐng)談?wù)劮?wù)端事件是怎么發(fā)生并解釋其原理?自動(dòng)傳

回是什么?為什么要使用自動(dòng)傳回。

由于ASP。NET是Web頁(yè)面和服務(wù)端分離的,因此要產(chǎn)生了服務(wù)端事件.

?使用一doPostBack函數(shù)可以自動(dòng)地把客戶端的javascript事件轉(zhuǎn)變?yōu)橐粋€(gè)服務(wù)器端的事件

?A框架自動(dòng)為我們解決有關(guān)的細(xì)節(jié)簡(jiǎn)化工作

使用自動(dòng)傳回的特性:在檢測(cè)到一個(gè)特定用戶動(dòng)作時(shí),自動(dòng)傳回可以將這個(gè)頁(yè)面?zhèn)骰胤?/p>

務(wù)器以解決事件.

7.WEB控件及HTML服務(wù)端控件能否調(diào)用客戶端方法?假如能,請(qǐng)解釋如何調(diào)用?

8.ASPoNET與ASP相比有什么優(yōu)勢(shì)?

ASP的缺陷:

(1)VBScript和JavaScript是在ASP中僅可使用的兩種腳本語(yǔ)言。它們是基本的非類型化語(yǔ)

言.在ASP中不能使用強(qiáng)類型語(yǔ)言.

(2)ASP頁(yè)面需要解釋,使得它執(zhí)行速度較慢。

(3)ASP頁(yè)面非常凌亂。

(4)在使用ASP創(chuàng)建WEB應(yīng)用程序時(shí),程序員和設(shè)計(jì)人員必須在同一文獻(xiàn)上一起工作。

(5)在ASP中,必須通過(guò)編寫(xiě)代碼來(lái)提供所需的任何功能。

(6)在ASP中沒(méi)有對(duì)代碼給予太多的關(guān)注。

(7)在ASP中沒(méi)有調(diào)試機(jī)制。

(8)在ASP中。必須停止WEB服務(wù)器才干安裝DLL的新版本,并且在應(yīng)用程序中使用DLL

的新版本之前,必須先在注冊(cè)表中注冊(cè)它,并且,DLL注冊(cè)過(guò)程非常復(fù)雜。

ASP.NET的優(yōu)點(diǎn):

(1)ASPoNET中支持強(qiáng)類型語(yǔ)言.

(2)ASP。NET頁(yè)將被編譯而不是解釋,這樣它們的執(zhí)行速度就比ASP頁(yè)快。

(3)ASP。NET提供聲明性服務(wù)器控件。

(4)ASP。NET通過(guò)繼承機(jī)制來(lái)支持代碼的重用。

(5)ASP。NET具有Trace的內(nèi)置方法,可以幫助對(duì)頁(yè)面進(jìn)行調(diào)試。

(6)在ASP。NET中,置于應(yīng)用程序的BIN目錄中的任何組件將自動(dòng)相應(yīng)用程序可用.

9.請(qǐng)解釋web.config文獻(xiàn)中的重要節(jié)點(diǎn)

動(dòng)態(tài)調(diào)試編譯—<compilation/>,自定義錯(cuò)誤信息—<customErrors/>,身份驗(yàn)證一

<authenlication/>,授權(quán)--〈authorization/〉,應(yīng)用程序級(jí)別跟蹤記錄-<lrace/>,會(huì)話狀態(tài)設(shè)立

--<sessionState/>,全球化--〈globalization/〉

10.請(qǐng)解釋ASP。NET中的web頁(yè)面與其隱藏類之間的關(guān)系?

11.什么是viewstate,能否禁用?是否所用控件都可以禁用?

12.請(qǐng)解釋該錯(cuò)誤

13.當(dāng)發(fā)現(xiàn)不能讀取頁(yè)面上的輸入的數(shù)據(jù)時(shí)很有也許是什么因素導(dǎo)致的?怎么解決

14.請(qǐng)解釋一個(gè)WEB頁(yè)面中代碼執(zhí)行順序。

15.請(qǐng)解釋什么是上下文對(duì)象,在什么情況下要使用上下文對(duì)象

16.請(qǐng)解釋轉(zhuǎn)發(fā)與跳轉(zhuǎn)的區(qū)別?

17.請(qǐng)解釋ASP.NET中不同頁(yè)面之間數(shù)據(jù)傳遞有那些方式?

18.請(qǐng)解釋ASP。NET中buttonlinkbuttonimagebutton及hyperlink這四個(gè)控件之

間的區(qū)別

19.請(qǐng)解釋一下。NET多層應(yīng)用程序中層與層之間以那幾種方式進(jìn)行數(shù)據(jù)傳遞。并解

釋你自己的項(xiàng)目中采用那種方式進(jìn)行。

20.假如出現(xiàn)ASP。NET中的事件不能觸發(fā)也許由于什么因素導(dǎo)致?請(qǐng)列舉至少兩個(gè)

21.假如需要在datagride控件中的某一列中添加下拉列表框并綁定數(shù)據(jù)怎么解決?

22.請(qǐng)解釋中的數(shù)據(jù)綁定與傳統(tǒng)數(shù)據(jù)綁定有什么區(qū)別?

23.請(qǐng)以圖示方式解釋ADO。NET的對(duì)象模型。

24.請(qǐng)解釋webService?如何實(shí)現(xiàn)webService。

25.假如用dataSet提交數(shù)據(jù)請(qǐng)編寫(xiě)實(shí)現(xiàn)代碼?

26.DataList能否分頁(yè),請(qǐng)問(wèn)如何實(shí)現(xiàn)?

27.請(qǐng)列舉DataSet中的了對(duì)象?

28.請(qǐng)分別比較JDBCADOADO.NET并說(shuō)明三者之間的異同點(diǎn)及優(yōu)勢(shì)

29.請(qǐng)解釋這個(gè)正則表達(dá)式“[AB][TJG]n-3][QSW]\d{4}”

30.在ASP.NET中如何進(jìn)行文獻(xiàn)上傳?

簡(jiǎn)要地寫(xiě)出一個(gè).NETRemoting的示例

【考點(diǎn)】

.NETRemoting程序的原理,.NETRemoting的基本編寫(xiě)方法。

【出現(xiàn)頻率】

★★☆☆☆

【解答】

在VS2023中添加新的類庫(kù)項(xiàng)目,并命名為NetRmClass,將所屬解決方案命名為NetRm,

勾選“創(chuàng)建解決方案的目錄”。這樣,NetRmClass類庫(kù)項(xiàng)目目錄即屬于NetRm解決方案,

并可以繼續(xù)向該解決方案添加更多的其他相關(guān)項(xiàng)目。類庫(kù)項(xiàng)目在這里僅用于創(chuàng)建一個(gè)遠(yuǎn)程對(duì)

象的類,將項(xiàng)目中的cs文獻(xiàn)命名為RmObj,其包含的類型同樣為RmObj,編寫(xiě)RmObj.cs

如代碼13.4所示。

代碼13.4遠(yuǎn)程對(duì)象類定義:RmObj.cs

usingSystem;

usingSystem.Windows.Forms;

namespaceNetRmClass

(

publicclassRmObj:MarshalByRefObject

(

〃在構(gòu)造函數(shù)中,用提醒窗口提醒雙方用戶遠(yuǎn)程對(duì)象創(chuàng)建成功

publicRmObj()

{

MessageBox.Show(“遠(yuǎn)程對(duì)象已經(jīng)倉(cāng)U建","提醒信息”);

//調(diào)用Diss方法,會(huì)在服務(wù)器端的控制臺(tái)程序中輸出方法參數(shù)

publicvoidDiss(stringmsg)

Console.WriteLine("客戶端信息:"+msg);

〃該方法可返回字符串

publicstringDisc()

return”與服務(wù)器端完畢通信”;

將NetRm解決方案中的NetRmClass項(xiàng)目進(jìn)行編譯(VS2023中選擇菜單欄的“項(xiàng)目|生成”

命令,快捷鍵為Crtl+F6),即可在該項(xiàng)目目錄中的“bin\Debug”途徑下生成編譯后的

NetRmClass.dll程序集。

在VS2023中的NetRm解決方案再次添加新的控制臺(tái)應(yīng)用程序項(xiàng)目,并命名為NetRmServer。

該項(xiàng)目所生成的程序集作為Remoting的服務(wù)器端,一方面需要添加“NelRmClass.dll”程序

集引用,并導(dǎo)入NetRmClass命名空間,編寫(xiě)該項(xiàng)目的Program.cs如代碼13.5所示。

代碼13.5Remoting服務(wù)器端程序:Program.cs

usingSystem;

usingSystem.Runtime.Remoting;

usingSystem.Runtime.Remoting.Channels;

usingSystem.Runtime.Remoting.Channels.Tcp;

usingNetRmClass;

namespaceNetRmServer

classProgram

〃聲明TcpServerChannel類型的靜態(tài)字段channels

staticTcpServerChannelchannels;

staticvoidMain(slring[]args)

(

//創(chuàng)建新的TcpServerChannel對(duì)象,端標(biāo)語(yǔ)為3000,引用為channels

channels=newTcpServerChannel(3000);

〃將channels注冊(cè)到信道服務(wù)

ChannelServices.RegisterChannel(channels,false);

〃創(chuàng)建知名服務(wù)類型的對(duì)象,傳遞遠(yuǎn)程對(duì)象的類型、對(duì)象URI和激活對(duì)象的枚

舉成員

RemotingConfiguration.RegisterWellKnownServiceType(typeof(RmObj),uMyUri",

WellKnownObjectMode.Singleton);

〃信息提醒,當(dāng)用戶輸入字符,則結(jié)束程序

Console.WriteLine("二二二二二二服務(wù)器端己?jiǎn)?dòng)=====");

Console.ReadQ;

添加“NetRmClass.dll”程序集引用后,該程序集的副本即被復(fù)制到NelRmServer項(xiàng)目目錄

中的“bin'Debug”途徑下,以供NetRmServer項(xiàng)目生成的程序集使用。將NetRm解決方案

中的NetRmServer項(xiàng)目進(jìn)行編譯,即可在該項(xiàng)目目錄中的“bin'Debug”途徑下生成編譯后

的NetRmServer.exe程序集。

在VS2023中的NetRm解決方案再次添加新的Windows窗體應(yīng)用程序項(xiàng)目,并命名為

NetRmClientc該項(xiàng)目所生成的程序集作為Remoting的客戶端,一方面仍然需要添加

“NetRmClass.dll”程序集引用,并導(dǎo)入NetRmClass命名空間。在“Forml”窗體的設(shè)計(jì)視

圖中添加一個(gè)Button控件和TextBox控件,分別命名為“button1”和“textBox1”,編寫(xiě)Forml.cs

如代碼13.6所示。

代碼13.6Remoting客戶端程序:Forml.cs

usingSystem;

usingSystem.Windows.Forms;

usingSystem.Runtime.Remoting.Channels;

usingSystem.Runtime.Remoting.Channels.Tcp;

usingNetRmClass;

namespaceNetRmClient

(

publicpartialclassForml:Form

(

〃聲明TcpClientChannel類型的字段channelc

TcpClientChannelchannelc;

〃聲明RmObj類型的字段obj

RmObjobj;

publicForm1()

InitializeComponent();

privatevoidForm1_Load(objectsender,EventArgse)

〃創(chuàng)建TcpClientChannel對(duì)象,引用為channelc

channelc=newTcpClientChannel();

〃將channels注冊(cè)到信道服務(wù)

ChannelServices.RegisterChannel(channelc,false);

〃創(chuàng)建遠(yuǎn)程對(duì)象

obj=(RmObj)Activator.GetObject(typeof(RmObj),"tcp://localhost:3000/MyUrin);

)

privatevoidbutton1_Click(objectsender,EventArgse)

(

stringMyName=textBox1.Text;

〃調(diào)用遠(yuǎn)程對(duì)象的Diss方法,并傳遞用戶輸入值

obj.Diss(MyName);

〃調(diào)用遠(yuǎn)程對(duì)象的Disc方法,返回值賦值給textBox1控件的“Text”屬性

this.textBox1.Text=obj.Disc();

)

)

);

添加“NetRmClass.dll”程序集引用后,該程序集的副本同樣被復(fù)制到NetRmClient項(xiàng)目目

錄中的“bin\Debug”途徑下,以供NetRmClient項(xiàng)目生成的程序集使用。將NetRm解決方

案中的NetRmClient項(xiàng)目進(jìn)行編譯,即可在該項(xiàng)目目錄中的“bin'Debug”途徑下生成編譯

后的NetRmClient.exe程序集。

至此,一個(gè)簡(jiǎn)樸的.NETRemoting應(yīng)用解決方案已完畢,其中服務(wù)器端為控制臺(tái)程序,客戶

端為Windows窗體程序。服務(wù)器端所指定的位置是“l(fā)ocalhost",也可以根據(jù)程序需要更改

為IP地址。

【分析】

本題重要考察面試者對(duì)Remoting應(yīng)用原理的結(jié)識(shí),該解答并不適宜于直接應(yīng)用于實(shí)際開(kāi)發(fā)。

當(dāng)服務(wù)器端程序運(yùn)營(yíng)后(即運(yùn)營(yíng)NetRmServer.exe),用戶在客戶端程序中輸入一些文本,并

單擊“button」’按鈕,服務(wù)器端程序和客戶端程序運(yùn)營(yíng)效果如圖13.4所示。

圖13.4.NETRemoting應(yīng)用示例

解答所編寫(xiě)的.NETRemoting應(yīng)用用于在本機(jī)上測(cè)試,但是己經(jīng)展示了.NETRemoting技術(shù)

的基本編寫(xiě)方法。通過(guò)示例,可以清楚理解該技術(shù)的強(qiáng)大功能以及靈活性,但是需要編程者

編寫(xiě)大量的代碼,并且需要一致的運(yùn)營(yíng)環(huán)境支撐。

WCF技術(shù)有什么優(yōu)勢(shì)

【考點(diǎn)】

對(duì)WCF技術(shù)的了解,WCF技術(shù)的基本內(nèi)容。

【出現(xiàn)頻率】

★★☆☆☆

【解答】

常用的分布式技術(shù)有COM+、.NET遠(yuǎn)程技術(shù)(Remoting)、WebService和微軟消息隊(duì)列服

務(wù),WCF技術(shù)將這些分布式技術(shù)整合為一個(gè)高效的API。常用的那些分布式技術(shù)只能解決

項(xiàng)目開(kāi)發(fā)中某個(gè)方面的問(wèn)題,并且不同技術(shù)對(duì)平臺(tái)規(guī)定不同。在項(xiàng)目中有時(shí)要使用到多種技

術(shù)從而導(dǎo)致這些技術(shù)所提供的服務(wù)有重疊之處,并且整個(gè)項(xiàng)目的維護(hù)復(fù)雜性大大增長(zhǎng)。WCF

技術(shù)提供了一個(gè)完整統(tǒng)一的方案解決這些問(wèn)題,它提供了一個(gè)用于訪問(wèn)各種分布式技術(shù)的通

用API,并且增長(zhǎng)了很多必要的服務(wù)。

【分析】

本題重要考察面試者對(duì).NETFramework新版本中WCF技術(shù)的基本認(rèn)知。公司招聘.NET程

序員不一定非要純熟掌握WCF這樣的新技術(shù),但是一定會(huì)規(guī)定所招聘的人才具有對(duì)新技術(shù)

的了解,對(duì)新技術(shù)探索的好奇心。本題即為這樣的目的而設(shè),難度不大,只要面試者對(duì)新技

術(shù)有一定限度的了解,通過(guò)短時(shí)間的培訓(xùn)即可掌握,其考察重點(diǎn)在于面試者的知識(shí)廣度。

.NETRemoting和WebService有什么異同

【考點(diǎn)】

.NETRemoting技術(shù)相對(duì)于WebService的優(yōu)勢(shì)和劣勢(shì).

【出現(xiàn)頻率】

★★★☆☆

【解答】

qRemoting技術(shù)可以靈活地定義其所基于的協(xié)議,比如HTTP協(xié)議和TCP協(xié)議。在實(shí)

際開(kāi)發(fā)中,Remoting一般使用TCP協(xié)議,這樣可保證在保持狀態(tài)的情況下,獲取比Web

Service更好的性能,而WebService默認(rèn)情況下是沒(méi)有狀態(tài)的。

qRemoting技術(shù)不是行業(yè)標(biāo)準(zhǔn),而WebService是行業(yè)標(biāo)準(zhǔn),并也許成為下一代網(wǎng)絡(luò)

數(shù)據(jù)互換的核心組成部分。

qRemoting技術(shù)可用.NET的Windows窗體程序或Windows服務(wù)進(jìn)行啟動(dòng),也可以使

用IIS部署,而WebService則必須通過(guò)IIS之類的服務(wù)啟動(dòng)。

q在VS2023等.NET開(kāi)發(fā)環(huán)境中,專門(mén)對(duì)WebService的調(diào)用進(jìn)行了封裝,可以直接

通過(guò)添加Web引用或服務(wù)引用調(diào)用WebService,節(jié)約大量代碼。而Remoting需要編寫(xiě)更

多代碼,開(kāi)發(fā)效率較低。

q.NETRemoting的通信規(guī)定雙方運(yùn)營(yíng)相同的平臺(tái)框架,如.NETRemoting需要客戶端

和服務(wù)器端安裝.NETFramework。而WebService是平臺(tái)獨(dú)立的,可跨語(yǔ)言(支持XML的

語(yǔ)言)互動(dòng)。

【分析】

本題考察面試者的數(shù)據(jù)庫(kù)相關(guān)的ASP.NET開(kāi)發(fā)經(jīng)驗(yàn),.NETRemoting與WebService有所不

同,Remoting技術(shù)支持HTTP以及TCP信道,并且不僅能傳輸XML格式的SOAP包,也

可以傳輸傳統(tǒng)意義上的二進(jìn)制流,這使得Remoting效率更高也更加靈活。Remoting不依賴

于IIS,服務(wù)器端和客戶端可以非常靈活地部署。從某些方面上來(lái)講WebService其實(shí)上

是.NETRemoting的一種特例。

【考點(diǎn)】

創(chuàng)建WebService的基本代碼。

【出現(xiàn)頻率】

★★★☆☆

【解答】

在VS2023中添加新的WEB服務(wù)代碼模板到WebSvRm項(xiàng)目,并命名為MyWebSv.asmXo

這個(gè)代碼文獻(xiàn)實(shí)際已經(jīng)具有了WebService的基本代碼結(jié)構(gòu),這里編寫(xiě)一個(gè)能將小寫(xiě)字母轉(zhuǎn)

換為大寫(xiě)字母的WebService應(yīng)用。一方面編寫(xiě)MyWebSv.asmx.cs如代碼13.1所示。

代碼13.1轉(zhuǎn)換大寫(xiě)字母的WebService:MyWebSv.asmx.es

usingSystem;

usingSystem.Collections;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Linq;

usingSystem.Web;

usingSystem.Web.Services;

usingSystem.Web.Services.Protocols;

usingSystem.Xml.Linq;

namespaceWebSvRm

(

〃默認(rèn)命名空間的指定

lWebService(Namespace="")]

(WebServiceBinding(ConformsTo=WsiProfiles.BasicProfilel_l)]

publicclassMyWebSv:System.Web.Services.WebService

〃聲明WebMethod特性,該方法才可以被訪問(wèn)

[WebMethod]

publicstringConvertWord(stringword)

(

returnword.ToUpperlnvariant();

)

)

)

然后在WebSvRm項(xiàng)目中添加WEB引用,地址為uhttp://localhost/MyWebSv.asmx",這時(shí)項(xiàng)

目目錄下將生成WebReferences目錄,這個(gè)目錄包具有l(wèi)ocalhost子目錄。然后在WebSvRm

項(xiàng)目的默認(rèn)首頁(yè),即Default.aspx中調(diào)用WebService以輸出結(jié)果,一方面編寫(xiě)Default.aspx

如代碼13.2所示。

代碼13.2調(diào)用WebService的頁(yè)面:Default.aspx

<%@PageLanguage=,'C#"AutoEventWireup=,,true"CodeBehind=',Default.aspx.cs"

Inherits=,,WebSvRm._Default"%>

<!DOCTYPEhtmlPUBLICM-//W3C//DTDXHTML1.0Transitional//EN'>

<htmlxmlns=,H,>

<headrunat="server">

調(diào)用WebService</title>

</head>

<body>

<formid="formr,runat=,,servern>

<div>

請(qǐng)輸入需要轉(zhuǎn)換大寫(xiě)字母的初始字母或單詞:<asp:TextBoxrunat="server"

ID=ninput"x/asp:TextBox>

<asp:Buttonrunat="server”ID二“btn”Text="開(kāi)始轉(zhuǎn)換”/>

<hr/>

調(diào)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論