版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度朝鮮鈦礦國(guó)際貿(mào)易爭(zhēng)議仲裁與調(diào)解合同4篇
- 定期性贈(zèng)與合同書(shū)
- 2025年度南京市車位租賃市場(chǎng)供需分析報(bào)告合同4篇
- 大型模版機(jī)贈(zèng)與合同
- 2025年度生態(tài)園林木工支模設(shè)計(jì)與施工合同4篇
- 2025年度個(gè)人教育培訓(xùn)課程居間合同范本2篇
- 2025年度打印機(jī)設(shè)備生產(chǎn)與質(zhì)量控制體系合同4篇
- 2025年度新能源汽車牌照出租服務(wù)合同范本3篇
- 二零二五年度新型城鎮(zhèn)化基礎(chǔ)設(shè)施建設(shè)合同4篇
- 2025年度個(gè)人住房公積金借款合同書(shū)執(zhí)行指南3篇
- 企業(yè)文化融入中華傳統(tǒng)文化的實(shí)施方案
- 9.1增強(qiáng)安全意識(shí) 教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)上冊(cè)
- 《化工設(shè)備機(jī)械基礎(chǔ)(第8版)》全套教學(xué)課件
- 人教版八年級(jí)數(shù)學(xué)下冊(cè)舉一反三專題17.6勾股定理章末八大題型總結(jié)(培優(yōu)篇)(學(xué)生版+解析)
- 2024屆上海高考語(yǔ)文課內(nèi)古詩(shī)文背誦默寫(xiě)篇目(精校版)
- DL-T5024-2020電力工程地基處理技術(shù)規(guī)程
- 初中數(shù)學(xué)要背誦記憶知識(shí)點(diǎn)(概念+公式)
- 駕照體檢表完整版本
- 農(nóng)產(chǎn)品農(nóng)藥殘留檢測(cè)及風(fēng)險(xiǎn)評(píng)估
- 農(nóng)村高中思想政治課時(shí)政教育研究的中期報(bào)告
- 20100927-宣化上人《愣嚴(yán)咒句偈疏解》(簡(jiǎn)體全)
評(píng)論
0/150
提交評(píng)論