




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
.Net招聘筆試題大全
1、SQLSERVER服務(wù)器中,給定表tablel中有兩個(gè)字段ID、LastUpdateDate,ID表示更新的事
務(wù)號(hào),LastUpdateDate表示更新時(shí)的服務(wù)器時(shí)間,請(qǐng)使用一句SQL語句獲得最后更新的事務(wù)號(hào)。
(10)
答:SELECTID
FROMtablel
WHERELastUpdateDate=(SELECTMAX(LastUpdateDate)FROMtablel)
2、根據(jù)線程安全的相關(guān)知識(shí),分析以下代碼,當(dāng)調(diào)用test方法時(shí)i>10時(shí)是否會(huì)引起死鎖?并簡(jiǎn)
要說明理由。(10分)
publicvoidtest(inti)
(
lock(this)
(
if(i>10)
test(i);
1
1
}
答:不會(huì)發(fā)生死鎖,(但有一點(diǎn)int是按值傳遞的,所以每次改變的都只是一個(gè)副本,因此不會(huì)
出現(xiàn)死鎖。但如果把int換做一個(gè)object,那么死鎖會(huì)發(fā)生)
3、分析以下代碼。(10)
publicstaticvoidtest(stringConnectString)
System.Data.01eDb.01eDbConnectionconn=newSystem.Data.01eDb.01eDbConnection0;
conn.ConnectionString=ConnectString;
try
conn.Open();
}catch(ExceptionEx)
(
MessageBox.Show(Ex.ToStringO);
}finaIIy
(
if(!conn.State.EquaIs(ConnectionState.CIosed))
conn.CloseO;
)
請(qǐng)問
1)以上代碼可以正確使用連接池嗎?
答:回答:如果傳入的connectionstring是一模一樣的話,可以正確使用連接池。不過一模一
樣的意思是,連字符的空格數(shù),順序完全一致。
2)以上代碼所使用的異常處理方法,是否所有在test方法內(nèi)的異常都可以被捕捉并顯示出來?
答:只可以捕捉數(shù)據(jù)庫(kù)連接中的異常吧.(finally中,catch中,如果有別的可能引發(fā)異常的
操作,也應(yīng)該用try,catch。所以理論上并非所有異常都會(huì)被捕捉。)
8、簡(jiǎn)要談一下您對(duì)微軟.NET構(gòu)架下remoting和webservice兩項(xiàng)技術(shù)的理解以及實(shí)際中的應(yīng)用。
(10)
答:WS主要是可利用HTTP,穿透防火墻。而Remoting可以利用TCP/IP,二進(jìn)制傳送提高效率。
9、公司要求開發(fā)一個(gè)繼承System.Windows.Forms.ListView類的組件,要求達(dá)到以下的特殊功
能:點(diǎn)擊ListView各列列頭時(shí),能按照點(diǎn)擊列的每行值進(jìn)行重排視圖中的所有行(排序的方式
如DataGrid相似)。根據(jù)您的知識(shí),請(qǐng)簡(jiǎn)要談一下您的思路:(10)
答:根據(jù)點(diǎn)擊的列頭,包該列的ID取出,按照該ID排序后,在給綁定到ListView中
10、給定以下XML文件,完成算法流程圖。(10)
<FileSystem>
<DriverC>
<DirDirName二"MSD0S622”>
<FiIeFiIeName二"Command,com,,></File>
</Dir>
<FiIeFiIeName二"MSDOS.SYS"X/File>
<FiIeFileName=wIO.SYS"X/File>
</DriverC>
</FiIeSystem>
請(qǐng)畫出遍歷所有文件名(FileName)的流程圖(請(qǐng)使用遞歸算法)。
答:
voidFindFile(Directoryd)
{
FileOrFolders=d.GetFiIeOrFoIders();
foreach(FileOrFolderfofinFileOrFolders)
(
if(fofisFiIe)
YouFoundafiIe;
eIseif(fofisDirectory)
FindFile(fof);
)
簡(jiǎn)單的說就是從根節(jié)點(diǎn)開始遍歷找子節(jié)點(diǎn),在從找到的子節(jié)點(diǎn)找它的子節(jié)點(diǎn),一層層下去
1,String和StringBuiIder的區(qū)別?
2、類的static型構(gòu)造方法是干什么用的?
1、System.String類是一種傳統(tǒng)的修改字符串的方式,它確實(shí)可以完成把一個(gè)字符串添加到另一個(gè)字符串
上的工作沒錯(cuò)。但是在.NET框架下,這個(gè)操作實(shí)在是劃不來。因?yàn)橄到y(tǒng)先是把兩個(gè)字符串寫入內(nèi)存,接著
刪除原來的String對(duì)象,然后創(chuàng)建一個(gè)String對(duì)象,并讀取內(nèi)存中的數(shù)據(jù)賦給該對(duì)象。這一來二去的,
耗了不少時(shí)間。
而使用System.Text命名空間下面的StringBuiIder類就不是這樣了,它提供的Append方法,能夠在已有
對(duì)象的原地進(jìn)行字符串的修改,簡(jiǎn)單而且直接。如果想要編寫將連續(xù)操作依次連接起來的單個(gè)語句,這將
很方便,
如果要操作一個(gè)不斷增長(zhǎng)的字符串,請(qǐng)你不要再用String類了。為什么涕淌要這樣說呢?我們來看看兩個(gè)
類的工作原理。
String類是一種傳統(tǒng)的修改字符串的方式,它確實(shí)可以完成把一個(gè)字符串添加到另一個(gè)字符串上的工作沒
錯(cuò)“但是在.NET框架下,這個(gè)操作實(shí)在是劃不來。因?yàn)橄到y(tǒng)先是把兩個(gè)字符串寫入內(nèi)存,接著刪除原來的
String對(duì)象,然后創(chuàng)建一個(gè)String對(duì)象,并讀取內(nèi)存中的數(shù)據(jù)賦給該對(duì)象.這一來二去的,耗了不少時(shí)
間。
而使用System.Text命名空間下面的StringBuiIder類就不是這樣了,它提供的Append方法,能夠在已有
對(duì)象的原地進(jìn)行字符串的修改,簡(jiǎn)單而且直接。
當(dāng)然,一般情況下你是覺察不出這二者效率的差異的,但如果你要對(duì)某個(gè)字符串進(jìn)行大量的添加操作,那
么用StringBuiIder類所耗費(fèi)的時(shí)間和String類簡(jiǎn)直不是一個(gè)數(shù)量級(jí)的。下面是一個(gè)例子,你自己試一試:
ImportsSystem
ImportsSystem.Text
NamespaceStringBuiIderSampIe
ClasscIsStrBuiIder
SharedSubMain()
DimiAsInteger
DimstartTimeAsDateTime
DimstopTimeAsDateTime
‘用String類來連接字符串
ConsoIe.WriteLine("String類”)
DimstrAsString=String.Empty
startTime=DateTime.Now
Console.WriteLine((“開始時(shí)間:”&startTime.ToString()))
Fori=0To99999
str&=i.ToString()
Nexti
stopTime=DateTime.Now
Console.WriteLine((“結(jié)束時(shí)間:“&stopTime.ToString()))
‘用StringBuiIder類來連接字符串
ConsoIe.WriteLine("StringBuiIder類”)
DimbuiIderAsNewStringBuiIder()
startTime=DateTime.Now
Console.WriteLine((“開始時(shí)間:”&startTime.ToString()))
Fori=0To99999
buiIder.Append(i.ToString())
Nexti
stopTime二DateTime.Now
Console.WriteLine((“結(jié)束時(shí)間:”&stopTime.ToString()))
EndSub
EndClass
EndNamespace
2、靜態(tài)構(gòu)造函數(shù)用于初始化任何靜態(tài)數(shù)據(jù),或用于執(zhí)行僅需執(zhí)行一次的特定操作°在創(chuàng)建第一個(gè)實(shí)例或引
用任何靜態(tài)成員之前,將自動(dòng)調(diào)用靜態(tài)構(gòu)造函數(shù)
31.公司要求開發(fā)一^繼承System.Windows.Forms.ListView類的組件,要求達(dá)到以下的特殊功能:點(diǎn)擊
ListView各列列頭時(shí),能按照點(diǎn)擊列的每行值進(jìn)行重排視圖中的所有行(排序的方式如DataGrid相似)。
根據(jù)您的知識(shí),請(qǐng)簡(jiǎn)要談一下您的思路
答:根據(jù)點(diǎn)擊的列頭,包該列的ID取出,按照該ID排序后,在給綁定到ListView中
32.給定以下XML文件,完成算法流程圖。
<FiIeSystem>
<DriverC>
<DirDirName二”MSD0S622”>
<FiIeFiIeName="C”X/FiIe>
</Dir>
<FiIeFiIeName二"MSDOS.SYS"X/File>
<FiIeFileName="10.SYS"X/File>
</DriverC>
</FileSystem>
請(qǐng)畫出遍歷所有文件名(FileName)的流程圖(請(qǐng)使用遞歸算法)。
答:
voidFindFiIe(Directoryd)
(
FileOrFolders=d.GetFileOrFolders();
foreach(FileOrFolderfofinFileOrFolders)
(
if(fofisFiIe)
YouFoundafile;
eIseif(fofisDirectory)
FindFile(fof);
)
)
33.寫出一條Sql語句:取出表A中第31到第40記錄(SQLServer,以自動(dòng)增長(zhǎng)的ID作為主鍵,注意:ID
可能不是連續(xù)的.
答:解1:selecttop10*fromAwhereidnotin(selecttop30idfromA)
解
2:selecttop10*fromAwhereid>(selectmax(id)from(selecttop30idfromA)asA)
34.面向?qū)ο蟮恼Z言具有性、性、性
答:封裝、繼承、多態(tài)。
35.能用foreach遍歷訪問的對(duì)象需要實(shí)現(xiàn)接口或聲明方法的類型。
答:(Enumerable、GetEnumeratoro
36.GC是什么?為什么要有GC?
答:GC是垃圾收集器。程序員不用擔(dān)心內(nèi)存管理,因?yàn)槔占鲿?huì)自動(dòng)進(jìn)行管理°要請(qǐng)求垃圾收集,可
以調(diào)用下面的方法之一:
System,gc()
Runtime.getRuntime0.gc0
38.abstractclass和interface有什么區(qū)別?
答:
聲明方法的存在而不去實(shí)現(xiàn)它的類被叫做抽象類(abstractclass),它用于要?jiǎng)?chuàng)建一個(gè)體現(xiàn)某些基本行為
的類,并為該類聲明方法,但不能在該類中實(shí)現(xiàn)該類的情況。不能創(chuàng)建abstract類的實(shí)例。然而可以創(chuàng)
建一個(gè)變量,其類型是一個(gè)抽象類,并讓它指向具體子類的一個(gè)實(shí)例,不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方
法。Abstract類的子類為它們父類中的所有抽象方法提供實(shí)現(xiàn),否則它們也是抽象類為。取而代之,在子
類中實(shí)現(xiàn)該方法。知道其行為的其它類可以在類中實(shí)現(xiàn)這些方法。
接口(interface)是抽象類的變體.在接口中,所有方法都是抽象的。多繼承性可通過實(shí)現(xiàn)這樣的接口而
獲得。接口中的所有方法都是抽象的,沒有一個(gè)有程序體.接口只可以定義staticfinal成員變量。接口
的實(shí)現(xiàn)與子類相似,除了該實(shí)現(xiàn)類不能從接口定義中繼承行為。當(dāng)類實(shí)現(xiàn)特殊接口時(shí),它定義(即將程序
體給予)所有這種接口的方法。然后,它可以在實(shí)現(xiàn)了該接口的類的任何對(duì)象上調(diào)用接口的方法。由于有
抽象類,它允許使用接口名作為引用變量的類型“通常的動(dòng)態(tài)聯(lián)編將生效?引用可以轉(zhuǎn)換到接口類型或從
接口類型轉(zhuǎn)換,instanceof運(yùn)算符可以用來決定某對(duì)象的類是否實(shí)現(xiàn)了接口。
39.啟動(dòng)一個(gè)線程是用run()還是start()?
答:?jiǎn)?dòng)一個(gè)線程是調(diào)用start。方法,使線程所代表的虛擬處理機(jī)處于可運(yùn)行狀態(tài),這意味著它可以由
JVM調(diào)度并執(zhí)行。這并不意味著線程就會(huì)立即運(yùn)行。run()方法可以產(chǎn)生必須退出的標(biāo)志來停止一個(gè)線程。
40.接口是否可繼承接口?抽象類是否可實(shí)現(xiàn)(implements)接口?抽象類是否可繼承實(shí)體類
(concreteclass)?
答:接口可以繼承接口。抽象類可以實(shí)現(xiàn)(implements)接口,抽象類是否可繼承實(shí)體類,但前提是實(shí)體類
必須有明確的構(gòu)造函數(shù)。
41.構(gòu)造器Constructor是否可被override?
答:構(gòu)造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。
42.是否可以繼承String類?
答:String類是final類故不可以繼承。
43.try。里有一個(gè)return語句,那么緊跟在這個(gè)try后的fina11y0里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)
候被執(zhí)行,在return前還是后?
答:會(huì)執(zhí)行,在return前執(zhí)行。
44.兩個(gè)對(duì)象值相同(x.equals(y)==true),但卻可有不同的hashcode,這句話對(duì)不對(duì)?
答:不對(duì),有相同的hashcode。
45.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
答:switch(expri)中,expri是一個(gè)整數(shù)表達(dá)式。因此傳遞給switch和case語句的參數(shù)應(yīng)該
是int、short、char或者byte。long,string都不能作用于swtich。
47.當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對(duì)象的其它方法?
不能,一個(gè)對(duì)象的一個(gè)synchronized方法只能由一個(gè)線程訪問。
48.abstract的method是否可同時(shí)是static,是否可同時(shí)是native,是否可同時(shí)是synchronized?
答:都不能。
49.List,Set,Map是否繼承自Collection接口?
答:List,Set是Map不是
50.Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢?是用=還是equals。?它們有何區(qū)別?
答:Set里的元素是不能重復(fù)的,那么用iterator。方法來區(qū)分重復(fù)與否。equaIs()是判讀兩個(gè)Set是否
相等。
equals。和二二方法決定引用值是否指向同一對(duì)象equals。在類中被覆蓋,為的是當(dāng)兩個(gè)分離的對(duì)象的內(nèi)容
和類型相配的話,返回真值。
51.數(shù)組有沒有l(wèi)ength。這個(gè)方法?String有沒有l(wèi)ength。這個(gè)方法?
答:數(shù)組沒有l(wèi)ength。這個(gè)方法,有l(wèi)ength的屬性。String有有l(wèi)ength()這個(gè)方法。
52.sleep()和wait()有什么區(qū)別?
答:sleep。方法是使線程停止一段時(shí)間的方法。在sleep時(shí)間間隔期滿后,線程不一定立即恢復(fù)執(zhí)行。
這是因?yàn)樵谀莻€(gè)時(shí)刻,其它線程可能正在運(yùn)行而且沒有被調(diào)度為放棄執(zhí)行,除非(a)“醒來”的線程具有更
高的優(yōu)先級(jí)
(b)正在運(yùn)行的線程因?yàn)槠渌蚨枞?/p>
wait。是線程交互時(shí),如果線程對(duì)一個(gè)同步對(duì)象x發(fā)出一個(gè)wait。調(diào)用,該線程會(huì)暫停執(zhí)行,被調(diào)對(duì)象進(jìn)
入等待狀態(tài),直到被喚醒或等待時(shí)間到。
53.shorts1=1;s1=s1+1;有什么錯(cuò)?shorts1=1;s1+=1;有什么錯(cuò)?
答:shortsi=1:s'!=s1+1;有錯(cuò),s1是short型,s1+1是int型,不能顯式轉(zhuǎn)化為short型??尚?/p>
改為s1=(short)(s1+1)oshorts1=1;s1+=1正確。
54.談?wù)刦inal,finally.finalize的區(qū)別。
答:
final一修飾符(關(guān)鍵字)如果一個(gè)類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被
繼承。因此一個(gè)類不能既被聲明為abstract的,又被聲明為final的。將變量或方法聲明為final,
可以保證它們?cè)谑褂弥胁槐桓淖儭1宦暶鳛閒inal的變量必須在聲明時(shí)給定初值,而在以后的引用中
只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載
finally一再異常處理時(shí)提供finally塊來執(zhí)行任何清除操作。如果拋出一個(gè)異常,那么相匹配
的catch子句就會(huì)執(zhí)行,然后控制就會(huì)進(jìn)入finally塊(如果有的話)。
finalize一方法名。Java技術(shù)允許使用finalize。方法在垃圾收集器將對(duì)象從內(nèi)存中清除出去之前做必
要的清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對(duì)象沒有被引用時(shí)對(duì)這個(gè)對(duì)象調(diào)用的。它是
在Object類中定義的,因此所有的類都繼承了它。子類覆蓋finalize()方法以整理系統(tǒng)資源或者
執(zhí)行其他清理工作。finalizeO方法是在垃圾收集器刪除對(duì)象之前對(duì)這個(gè)對(duì)象調(diào)用的。
55.如何處理幾十萬條并發(fā)數(shù)據(jù)?
答:用存儲(chǔ)過程或事務(wù)。取得最大標(biāo)識(shí)的時(shí)候同時(shí)更新..注意主鍵不是自增量方式這種方法并發(fā)的時(shí)候是
不會(huì)有重復(fù)主鍵的..取得最大標(biāo)識(shí)要有一個(gè)存儲(chǔ)過程來獲取.
56.Session有什么重大BUG,微軟提出了什么方法加以解決?
答:是iis中由于有進(jìn)程回收機(jī)制,系統(tǒng)繁忙的話Session會(huì)丟失,可以用Sateserver或SQLServer
數(shù)據(jù)庫(kù)的方式存儲(chǔ)Session不過這種方式比較慢,而且無法捕獲Session的END事件。
57.進(jìn)程和線程的區(qū)別?
答:進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的單位;線程是CPU調(diào)度和分派的單位,一個(gè)進(jìn)程可以有多個(gè)線程,
這些線程共享這個(gè)進(jìn)程的資源。
58.堆和棧的區(qū)別?
答:
棧:由編譯器自動(dòng)分配、釋放。在函數(shù)體中定義的變量通常在棧上。
堆:一般由程序員分配釋放°用new、malloc等分配內(nèi)存函數(shù)分配得到的就是在堆上。
59.成員變量和成員函數(shù)前加static的作用?
答:它們被稱為常成員變量和常成員函數(shù),又稱為類成員變量和類成員函數(shù)。分別用來反映類的狀態(tài)。比
如類成員變量可以用來統(tǒng)計(jì)類實(shí)例的數(shù)量,類成員函數(shù)負(fù)責(zé)這種統(tǒng)計(jì)的動(dòng)作。
60.ASP.NET與ASP相比,主要有哪些進(jìn)步?
答:asp解釋形,aspx編譯型,性能提高,有利于保護(hù)源碼。
61.產(chǎn)生一個(gè)int數(shù)組,長(zhǎng)度為100,并向其中隨機(jī)插入1700,并且不能重復(fù)。
int[]intArr=newint[100];
ArrayListmyList=newArrayList();
Randomrnd=newRandom();
while(myList.Count<100)
(
intnunFrnd.Next(1,101);
if(!myList.Contains(num))
myList.Add(num);
)
for(inti=0;i<100;i++)
intArr[i]=(int)myList[i];
這些是C#,ASP.NET,數(shù)據(jù)庫(kù)面試題,全部從網(wǎng)上收集而來,經(jīng)整理而發(fā)表,希望給大家?guī)韼?/p>
助,有錯(cuò)誤的地方還請(qǐng)各位高手指出,在下傾聽指教01.簡(jiǎn)
述private、protectedpublic、internal修飾符的訪問權(quán)限。
答.private:私有成員,在類的內(nèi)部才可以訪問。
protected:保護(hù)成員,該類內(nèi)部和繼承類中可以訪問。
public:公共成員,完全公開,沒有訪問限制。
internal:在同一命名空間內(nèi)可以訪問。
2.列舉ASP.NET頁(yè)面之間傳遞值的幾種方式。
答.1.使用QueryString,如?id=1;response.Redirect()
2.使用Session變量
3.使用Server.Transfer
3,一列數(shù)的規(guī)則如下:1、1、2、3、5、8、13、21、34求第30位數(shù)是多少,用遞歸算法實(shí)現(xiàn)。
答:publicclassMainClass
(
publicstaticvoidMain()
(
ConsoIe.WriteLine(Foo(30));
)
publicstaticintFoo(inti)
(
if(i<=0)
return0;
elseif(i>0&&i<=2)
return1;
elsereturnFoo(i-1)+Foo(i-2);
)
)
4.C#中的委托是什么?事件是不是一種委托?
答:
委托可以把一個(gè)方法作為參數(shù)代入另一個(gè)方法。
委托可以理解為指向一個(gè)函數(shù)的引用。
是,是一種特殊的委托
5.override與重載的區(qū)別
答:
override與重載的區(qū)別。重載是方法的名稱相同。參數(shù)或參數(shù)類型不同,進(jìn)行多次重載以適應(yīng)不同的需要
Override是進(jìn)行基類中函數(shù)的重寫。為了適應(yīng)需要。
6.如果在一個(gè)B/S結(jié)構(gòu)的系統(tǒng)中需要傳遞變量值,但是又不能使用Session、Cookie>Application,您有
幾種方法進(jìn)行處理?
答:
this.Server.Transfer
7.請(qǐng)編程遍歷頁(yè)面上所有TextBox控件并給它賦值為string.Empty?
答:
foreach(System.Windows.Forms.Controlcontrolinthis.Controls)
(
if(controlisSystem.Windows.Forms.TextBox)
(
System.Windows.Forms.TextBoxtb=(System.Windows.Forms.TextBox)control;
tb.Text=String.Empty;
1
)
8.請(qǐng)編程實(shí)現(xiàn)一個(gè)冒泡排序算法?
答:
int口array=newint[*]
inttemp=0;
for(inti=0;i<array.Length-1;i++)
(
for(intj=i+1;j<array.Length;j++)
(
if(array[j]<array[i])
(
temp=array[i];
array[i]=array[j];
array[j]=temp;
)
)
)
9.描述一下C#中索引器的實(shí)現(xiàn)過程,是否只能根據(jù)數(shù)字進(jìn)行索引?
答:不是??梢杂萌我忸愋?。
10.求以下表達(dá)式的值,寫出您想到的一種或幾種實(shí)現(xiàn)方法:1-2+3-4+……+m
答:
intNum=this.TextBoxI.Text.ToString();
intSum=0;
for(inti=0;i<Num+1;i++)
(
if((i%2)==1)
I
Sum+=i;
)
eIse
Sum=Sum-I;
J
)
System.ConsoIe.WriteLine(Sum.ToString());
System.ConsoIe.ReadLine();
11.用.net做B/S結(jié)構(gòu)的系統(tǒng),您是用幾層結(jié)構(gòu)來開發(fā),每一層之間的關(guān)系以及為什么要這樣分層?
答:一般為3層
數(shù)據(jù)訪問層,業(yè)務(wù)層,表示層。
數(shù)據(jù)訪問層對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪查改。
業(yè)務(wù)層一般分為二層,業(yè)務(wù)表觀層實(shí)現(xiàn)與表示層的溝通,業(yè)務(wù)規(guī)則層實(shí)現(xiàn)用戶密碼的安全等。
表示層為了與用戶交互例如用戶添加表單。
優(yōu)點(diǎn):分工明確,條理清晰,易于調(diào)試,而且具有可擴(kuò)展性。
缺點(diǎn):增加成本。
12.在下面的例子里
usingSystem;
classA
(
pubIicA()
(
PrintFieIds();
)
pubIicvirtuaIvoidPrintFieIds(){}
)
cIassB:A
(
intx=1;
inty;
pubIicB()
y=-1;
)
pubIicoverridevoidPrintFieldsO
(
Console.WriteLine("x=[0},y={1}z/,x,y);
J
當(dāng)使用newB()創(chuàng)建B的實(shí)例時(shí),產(chǎn)生什么輸出?
答:X=1,Y=0;x=1y=-1
13.什么叫應(yīng)用程序域?
答:應(yīng)用程序域可以理解為一種輕量級(jí)進(jìn)程。起到安全的作用。占用資源小。
14.CTS、CLS、CLR分別作何解釋?
答:CTS:通用語言系統(tǒng)。CLS:通用語言規(guī)范。CLR:公共語言運(yùn)行庫(kù)。
15.什么是裝箱和拆箱?
答:從值類型接口轉(zhuǎn)換到引用類型裝箱。從引用類型轉(zhuǎn)換到值類型拆箱。
16.什么是受管制的代碼?
答:unsafe:非托管代碼。不經(jīng)過CLR運(yùn)行。
17.什么是強(qiáng)類型系統(tǒng)?
答:RTTI:類型識(shí)別系統(tǒng)。
18.net中讀寫數(shù)據(jù)庫(kù)需要用到那些類?他們的作用?
答:DataSet:數(shù)據(jù)存儲(chǔ)器。
DataCommand:執(zhí)行語句命令。
DataAdapter:數(shù)據(jù)的集合,用語填充。
19.ASP.net的身份驗(yàn)證方式有哪些?分別是什么原理?
答:10。Windwos(默認(rèn))用IIS...From(窗體)用帳戶Passport(密鑰)
20.什么是Code-Behind技術(shù)?
答:代碼后植.
21.在.net中,配件的意思是?
答:程序集。(中間語言,源數(shù)據(jù),資源,裝配清單)
22.常用的調(diào)用WebService的方法有哪些?
答:1.使用WSDL.exe命令行工具。
2.使用VS.NET中的AddWebReference菜單選項(xiàng)
23..netRemoting的工作原理是什么?
答:服務(wù)器端向客戶端發(fā)送一個(gè)進(jìn)程編號(hào),一個(gè)程序域編號(hào),以確定對(duì)象的位置.
24.在C#中,stringstr=nulI與stringstr=請(qǐng)盡量使用文字或圖象說明其中的區(qū)別。
答:stringstr=null是不給他分配內(nèi)存空間,而stringstr="”給它分配長(zhǎng)度為空字符串的內(nèi)存空
間。
25.請(qǐng)?jiān)斒鲈赿otnet中類(class)與結(jié)構(gòu)(struct)的異同?
答:Class可以被實(shí)例化,屬于引用類型,是分配在內(nèi)存的堆上的,Struct屬于值類型,是分配在內(nèi)存的棧上
的.
26.根據(jù)委托(delegate)的知識(shí),請(qǐng)完成以下用戶控件中代碼片段的填寫:
namespacetest
(
pubIicdelegatevoidOnDBOperate();
pubIiccIassUserControlBase:System.Windows.Forms.UserControl
pubIiceventOnDBOperateOnNew;
privatevoidtooIBar_ButtonCIick(objectsender,System.Windows.Forms.TooIBarButtonCIickEventArgs
e)
(
if(e.Button.EquaIs(BtnNew))
(
//請(qǐng)?jiān)谝韵卵a(bǔ)齊代碼用來調(diào)用OnDBOperate委托簽名的OnNew事件。
}
)
)
答:if(OnNew!=null)
OnNew(this,e);
27.分析以下代碼,完成填空
stringstrTmp="abcdefg某某某“;
inti=System.Text.Encoding.Defau11.GetBytes(strTmp).Length;
intj=strTmp.Length;
以上代碼執(zhí)行完后,i=j=
答:i二13,產(chǎn)10
28.SQLSERVER服務(wù)器中,給定表tablel中有兩個(gè)字段ID、LastUpdateDate,ID表示更新的事務(wù)
號(hào),LastUpdateDate表示更新時(shí)的服務(wù)器時(shí)間,請(qǐng)使用一句SQL語句獲得最后更新的事務(wù)號(hào)
答:SelectIDFROMtablelWhereLastUpdateDate=(SeIectMAX(LastUpdateDate)FROMtablel)
29.根據(jù)線程安全的相關(guān)知識(shí),分析以下代碼,當(dāng)調(diào)用test方法時(shí)i>10時(shí)是否會(huì)引起死鎖?并簡(jiǎn)要說明理
由
publicvoidtest(inti)
Iock(this)
if(i>10)
test(i);
)
答:不會(huì)發(fā)生死鎖,(但有一點(diǎn)int是按值傳遞的,所以每次改變的都只是一個(gè)副本,因此不會(huì)出現(xiàn)死鎖。
但如果把int換做一個(gè)object,那么死鎖會(huì)發(fā)生)
30.簡(jiǎn)要談一下您對(duì)微軟.NET構(gòu)架下remoting和webservice兩項(xiàng)技術(shù)的理解以及實(shí)際中的應(yīng)用。
答:WS主要是可利用HTTP,穿透防火墻。而Remoting可以利用TCP/IP,二進(jìn)制傳送提高效率。
畫注冊(cè):登錄:發(fā)表文章
C#的四個(gè)基本技巧
2007-01-1610:46:01
大中小
1.如果可能盡量使用接口來編程
.NET框架包括類和接口,在編寫程序的時(shí)候,你可能知道正在用.NET的哪個(gè)類。然而,在這種情況
下如果你用.NET支持的接口而不是它的類來編程時(shí),代碼會(huì)變得更加穩(wěn)定、可用性會(huì)更高。請(qǐng)分析下面的
代碼:
privatevoidLoadList(object口items,ListBoxI)
for(inti=0;i<items.Length;i++)
I.Iterns.Add(iterns[i].ToString());
)
這個(gè)函數(shù)從一個(gè)可為任何對(duì)象的數(shù)組中加載UstBox,這段代碼被限定為只能使用數(shù)組。假想過些時(shí)
候你發(fā)現(xiàn)那些對(duì)象存在數(shù)據(jù)庫(kù)中,或別的集合中。那么你需要修改程序來使用不同的集合類型。如果你用
[Collection接口來寫那段程序,你就不用修改那段程序了,對(duì)于任何實(shí)現(xiàn)ICollection接口的類型它都
能很好的工作:
privatevoidLoadList(IColIectionitems,ListBoxI)
(
foreach(objectoiniterns)
I.Iterns.Add(o.ToString());
)
IColIection被數(shù)組和所有System.Collection中的集合實(shí)現(xiàn)。此外,多維數(shù)組也支持ICollection
接口。如果那還不夠的話,數(shù)據(jù)庫(kù).NET類同樣支持ICollection接口。用接口寫的這個(gè)函數(shù)不用需改就可
以才許多中情況下使用。
2.使用屬性代替原始數(shù)據(jù)
因?yàn)閷傩砸呀?jīng)成為語言本身的元素,所以聲明數(shù)據(jù)元素時(shí)它的作用域等級(jí)沒有必要大于private。因
為代碼本身會(huì)把屬性看成數(shù)據(jù)元素,你并沒有失去使用簡(jiǎn)單數(shù)據(jù)類型的便利性。相反它會(huì)使你的代碼更加
靈活功能更加強(qiáng)大。屬性使你的數(shù)據(jù)元素封裝性更好。屬性可以讓你使用lazyevaluation來返回?cái)?shù)據(jù)。
lazyevaluation的意思是當(dāng)用戶請(qǐng)求時(shí)才計(jì)算它的值,而不是一直保留著它。
最后,屬性可以是virtual也可以是abstract。你也可以在接口中定義屬性。
這里還有維護(hù)方面的因素應(yīng)當(dāng)注意:盡管操作兩者的方法是一樣的,但是你把一個(gè)數(shù)據(jù)元素變成屬性,
那么原先客戶端的程序便不能訪問服務(wù)端的新版本程序了。實(shí)際上對(duì)于在Webservice中你想實(shí)現(xiàn)序列化
的值你可以把它們變成屬性來使用:
privateintTheMonth=0;
[XmlAttribute("Month")]
pubIicintMonth
(
get(
returnTheMonth;
)
set{
TheMonth=value;
)
)
簡(jiǎn)單通過屬性就可以使你的所有數(shù)據(jù)元素私有化。
3.在Producer/Consumer的Idiom中使用Delegate
當(dāng)你生成一個(gè)實(shí)現(xiàn)produceridiom類的時(shí)候,使用deIetate來通知consumer。這種方法相對(duì)于用接
口更加靈活。Delegate是多點(diǎn)傳送的,所以不用加額外的代碼你就何以支持多用戶。相對(duì)于用接口這樣做
可使類之間的耦合性降低。
下面的類處理鍵盤輸入并把它傳給所有的registeredIisteners:
pubIicclassKeyboardProcessor
(
privateOnGetLinetheFunc=null;
pubIicOnGetLineOnGetLineCaIIback(
get(
returntheFunc;
1
set(
theFunc=value;
)
)
pubIicvoidRun(){
//Readinput.
//IfthereisanyIisteners,pubIish:
strings;
do{
s=Console.ReadLine();
if(s.Length==0)
break;
if(theFunc!=nuII){
System.Delegate[]funcs=theFunc.GetInvocationList();
foreach(OnGetLinefinfuncs){
try(
f(s);
}catch(Exceptione){
Console.WriteLine
("CaughtException:{0}”,e.Message);
1
)
)
)while(true);
J
任何數(shù)目的Iisteners都可注冊(cè)到producer,它們所要做的只是提供一個(gè)特定的函數(shù):deletate<>
4.注意初始化順序
C#中對(duì)于一些變量聲明加入了initializer的概念。它們?cè)跇?gòu)造函數(shù)之前被執(zhí)行,實(shí)際上變量在基
類的構(gòu)造函數(shù)執(zhí)行前之前被初始化。
所以,在初始化變量的時(shí)候不要用基類中的數(shù)據(jù),因?yàn)樗鼈冞€沒有被構(gòu)造。
國(guó)注冊(cè):登錄:發(fā)表文章
40種網(wǎng)站設(shè)計(jì)常用技巧
000672-2715:18:17
大中小
1.oncontextmenu="window.event.returnVaIue二faIse"將徹底屏蔽鼠標(biāo)右鍵
<tabIeborderoncontextmenu=return(faIse)><td>no</tabIe>可用于Table
2.<bodyonseIectstart="returnfalse”)取消選取、防止復(fù)制
3.onpaste=,zreturnfalse”不準(zhǔn)粘貼
4.oncopy="returnfalse;"oncut=,returnfalse;“防止復(fù)制
5.<linkreI="ShortcutIcon“href=,,favicon.icoz,>IE地址欄前換成自己的圖標(biāo)
6.<1inkreI="Bookmark“href="favicon.ico”>可以在收藏夾中顯示出你的圖標(biāo)
7.<inputstyIe=,/ime-mode:disabIedz,>關(guān)閉輸入法
8.永遠(yuǎn)都會(huì)帶著框架
<scriptIanguage=,JavaScript”><!—
if(window==top)top.location.href="frames.htm";//frames,htm為框架網(wǎng)頁(yè)
//—></script>
9.防止被人frame
<SCRIPTLANGUAGE=JAVASCRIPTX!—
if(top.location!=self.location)top.location=seIf.location;
//—></SCRIPT>
W.網(wǎng)頁(yè)將不能被另存為
<noscriptXiframesrc="/bIog/*.htmI>";</iframeX/noseript>
11.<inputtype=buttonvaIue二查看網(wǎng)頁(yè)源代碼
oneIick=/,window.Iocation="view-source:"+"http://www.wiII””>
12.刪除時(shí)確認(rèn)
<ahref=/zjavascript:if(confirm("確實(shí)要?jiǎng)h除嗎?"))location="boos.asp?&areyou=刪除&page=1刪
除<3
13.取得控件的絕對(duì)位置
//Javascript
<scriptlanguage="Javascript”>
functiongetIE(e){
vart=e.offsetTop;
varl=e.offsetLeft;
whiIe(e=e.offsetParent)
alert("top="+t+”/nIeft="+I);
)
</script>
//VBScript
<scriptIanguage=/,VBScriptz/><!一
functiongetIE0
dimt,La,b
seta=document,aII.img1
t=document.aII.img1.offsetTop
I=document.all.img1.offsetLeft
whilea.tagName<>“BODY”
seta=a.offsetParent
t=t+a.offsetTop
l=l+a.offsetLeft
wend
1^8n*一斗二〃機(jī)&函「(13)&〃2代=〃&1,64,“得到控件的位置〃
endfunction
-X/script>
14.光標(biāo)是停在文本框文字的最后
<scriptlanguage="javascript”>
functioncc()
(
vare=event.srcElement;
varr=e.createTextRange();
r.moveStart("character”,e.vaIue.length);
r.colIapse(true);
r.select();
)
</script>
<inputtype=textname=text1value="123"onfocus="cc()”>
15.判斷上一頁(yè)的來源
javascript:
document,referrer
16.最小化、最大化、關(guān)閉窗口
<objectid=hh1cIassid=z,cIsid:ADB880A6-D8FF-11CF-9377-00AA003B7A1
<paramname="Command"vaIue=,/Minimize^X/object>
<objectid=hh2cIassid="cIsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11,z>
<paramname="Command“vaIue=/,Maximize,,X/object>
<OBJECTid=hh3classid="cIsid:adb880a6-d8ff-11cf-9377-00aa003b7a11z,>
<PARAMNAME="Command"VALUE=Z,CIosez,X/0BJECT>
<inputtype二buttonvalue二最小化oneIick=hh1.CIick()>
<inputtype二buttonvalue二最大化oneIick=hh2.Click()>
<inputtype=buttonvalue二關(guān)閉oneIick=hh3.Click()>
本例適用于IE
17.屏蔽功能鍵Shift,Alt.Ctrl
<script>
functionIook()(
if(event.shiftKey)
25代(“禁止按5卜汗1鍵!”);〃可以換成ALTCTRL
)
document.onkeydown=look;
</script>
18.網(wǎng)頁(yè)不會(huì)被緩存
<METAHTTP-EQUIV="pragma“CONTENT="no-cache”>
<METAHTTP-EQUIV=,zCache-ControI,zCONTENT^no-cache,must-revalidate”>
<METAHTTP-EQUIV="expires"CONTENT="Wed,26Feb199708:21:57GMT">
或者<METAHTTP-EQUIV=~expires〃CONTENT="0”>
19.怎樣讓表單沒有凹凸感?
<inputtype二textstyIe="border:1solid#000000z/>
或
<inputtype=textstyIe=,zborder-1eft:none;border-right:none;border-top:none;border-bottom:
1solid#000000z,X/textarea>
20.<div><span>&<Iayer>的區(qū)別?
<div>(division)用來定義大段的頁(yè)面元素,會(huì)產(chǎn)生轉(zhuǎn)行
<span>用來定義同一行內(nèi)的元素,跟<出丫>的唯一區(qū)別是不產(chǎn)生轉(zhuǎn)行
<layer)是ns的標(biāo)記,ie不支持,相當(dāng)于<div>
21.讓彈出窗口總是在最上面:
<bodyonbIur="this.focus();
22.不要滾動(dòng)條?
讓豎條沒有:
<bodystyIe=,,overfIow:scroII;overfIow-y:hidden”>
</body>
讓橫條沒有:
<bodystyIe="overfIow:scroII;overfIow-x:hidden”>
</body>
兩個(gè)都去掉?更簡(jiǎn)單了
<bodyscroIl=z/no,z>
</body>
23.怎樣去掉圖片鏈接點(diǎn)擊后,圖片周圍的虛線?
<ahref=zz#zzonFocus=,,this.bIur0,z><imgsrc="/blog/logo,jpg"border=0X/a>
24.電子郵件處理提交表單
<formname="forml“method="post"action="mailto:****@***.com“enctype=,,text/pIainz/>
<inputtype=submit>
</form>
25.在打開的子窗口刷新父窗口的代碼里如何寫?
window,opener,location.reload()
26.如何設(shè)定打開頁(yè)面的大小
<bodyonIoad=//top.resizeTo(300,200)
打開頁(yè)面的位置〈bodyonload="top.moveBy(300,200)
27.在頁(yè)面中如何加入不是滿鋪的背景圖片,拉動(dòng)頁(yè)面時(shí)背景圖不動(dòng)
<STYLE>
body
{background-image:urI(/bIog/1ogo.gif);background-repeat:no-repeat;
background-position:center:background-attachment:fixed}
</STYLE>
28.檢查一段字符串是否全由數(shù)字組成
<scriptIanguage=,zJavascript"X!一
functioncheckNum(str){returnstr.match(//D/)==nu11}
aIert(checkNum(“1232142141,z))
aIert(checkNum(“123214214a1"))
//―></script>
29,獲得一個(gè)窗口的大小
document,body,cIientWidth;document,body,cIientHeight
30.怎么判斷是否是字符
if(/[Vx00-/xff]/g.test(s))alert(“含有漢字”);
elsealert("全是字符");
31.TEXTAREA自適應(yīng)文字行數(shù)的多少
<textarearows=1name=s1coIs=27onpropertychange=,,this.style.posHeight=this.scrolIHeight'^
</textarea>
32.日期減去天數(shù)等于第二個(gè)日期
<scriptlanguage=Javascript>
functioncc(dd,dadd)
(
//可以加上錯(cuò)誤處理
vara=newDate(dd)
a=a.vaIueOf()
a=a-dadd*24*60*60*1000
a=newDate(a)
aIert(a.getFuIIYear()+“年”+(a.getMonth()+1)+“月〃+a.getDate()+“日”)
}
cc(“12/23/2002”,2)
</script>
33.選擇了哪一個(gè)Radio
<HTMLXscriptlanguage=,,vbscript”>
functioncheckme()
foreachobinradio1
ifob.checkedthenwindow,alertob.vaIue
next
endfunction
</scriptXBODY>
<INPUTname="radiol”type="radio"value="styIe"checked>StyIe
<INPUTname="radiol“type="radio“vaIue="barcode”>Barcode
<INPUTtype="button"vaIue="check"oneIick="checkme()〃>
</BODYX/HTML>
34.腳本永不出錯(cuò)
<SCRIPTLANGUAGE="JavaScript”)
<!—Hide
functionkiIlErrorsO(
returntrue;
J
window,onerror=kiIlErrors;
//~>
</SCRIPT>
35.ENTER鍵可以讓光標(biāo)移到下一個(gè)輸入框
<inputonkeydown="if(event.keyCode=13)event.keyCode二9”>
36.檢測(cè)某個(gè)網(wǎng)站的鏈接速度:
把如下代碼加入<body>區(qū)域中:
<scriptIanguage=Javascript>
tim=1
setInterval(z,tim++z/,100)
b=1
varautourl=newArray()
autourI[1]=//”
autourI[2]=,”
autourI[3]=,”
autourI[4]=,,”
autourI[5]=/,”
functionbutt()(
document,writeC<formname=autof>")
for(vari=1;i<autourI.Iength;i++)
document,write(,z<inputtype二textname=txt"+i+"size=10vaIue二7bIog/測(cè)試中>"二》<input
type=text
name=urI"+i+"size=40>=》<inputtype=buttonvaIue=G0
oneIick=window.open(this.form,urI"+i+”.vaIue)><br/>")
document,write(,z<inputtype=submitvaIue=刷新></form>")
)
butt0
functionauto(urI)
eIse
b++
J
functionrun(){for(vari=1;i<autourI.Iength;i++)document,write('?mg
src=http:Z/^+autourI+,,/,,+Math.random()+"width=1height=1
onerror=auto("http://"+autourl+"")>")}
run()</script>
37.各種樣式的光標(biāo)
auto:標(biāo)準(zhǔn)光標(biāo)
default:標(biāo)準(zhǔn)箭頭
hand:手形光標(biāo)
wait:等待光標(biāo)
text:I形光標(biāo)
vertical-text:水平I形光標(biāo)
no-drop:不可拖動(dòng)光標(biāo)
not-aIIowed:無效光標(biāo)
help:?幫助光標(biāo)
all-scrolI:三角方向標(biāo)
move:移動(dòng)標(biāo)
crosshair:十字標(biāo)
e-resize
n-resize
nw-resize
w-resize
s-resize
se-resize
sw-resize
38.頁(yè)面進(jìn)入和退出的特效
j?A55?<metahttp-equiv=//Enter,/content=z,reveaITrans(duration=x,transition=y)zz>
推出頁(yè)面〈metahttp-equiv="Exit“content="revealTrans(duration。,transition=y)”>
這個(gè)是頁(yè)面被載
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 檢測(cè)服務(wù)合同模板
- 地震安全課件百度
- 儀器儀表在安防領(lǐng)域的應(yīng)用考核試卷
- 搪瓷制品的企業(yè)文化與品牌效應(yīng)考核試卷
- 商務(wù)代理國(guó)際市場(chǎng)營(yíng)銷渠道開發(fā)考核試卷
- 客戶關(guān)系管理在供應(yīng)鏈中的作用考核試卷
- 成人教育學(xué)習(xí)效果評(píng)估考核試卷
- 工業(yè)機(jī)器人法律倫理與社會(huì)責(zé)任考核試卷
- 承包母嬰店合同范本
- 簡(jiǎn)易訂單合同范本
- 勞務(wù)投標(biāo)書技術(shù)標(biāo)
- 自動(dòng)識(shí)別技術(shù)及應(yīng)用《自動(dòng)識(shí)別技術(shù)及應(yīng)用》模塊一課件
- 仁愛版九年級(jí)英語下冊(cè)課文翻譯
- 無人機(jī)應(yīng)用技術(shù)專業(yè)課程標(biāo)準(zhǔn)(技工口)
- 產(chǎn)業(yè)園運(yùn)營(yíng)服務(wù)方案
- 公司工程竣工內(nèi)部預(yù)驗(yàn)收實(shí)施細(xì)則
- 監(jiān)理日志表(標(biāo)準(zhǔn)模版)
- H3C-CAS虛擬化平臺(tái)詳細(xì)介紹
- 藥房品種類別及數(shù)量清單
- 機(jī)關(guān)檔案管理工作培訓(xùn)PPT課件
- 大學(xué)生安全教育課件(ppt共41張)
評(píng)論
0/150
提交評(píng)論