下面是我收集的一些題目以及答案(答案可能有些包含我自己的見(jiàn)解,如有錯(cuò)誤請(qǐng)指出)。
1.面向?qū)ο蟮娜筇匦?BR>封裝、繼承、多態(tài)
2.裝箱和拆箱
裝箱:值類(lèi)型轉(zhuǎn)換為引用類(lèi)型
拆箱:引用類(lèi)型轉(zhuǎn)換為值類(lèi)型
.NET中,數(shù)據(jù)類(lèi)型劃分為值類(lèi)型和引用(不等同于C++的指針)類(lèi)型,與此對(duì)應(yīng),內(nèi)存分配被分成了兩種方式,一為棧,二為堆,注意:是托管堆。
值類(lèi)型只會(huì)在棧中分配。
引用類(lèi)型分配內(nèi)存與托管堆。
托管堆對(duì)應(yīng)于垃圾回收。
3.C#可否對(duì)內(nèi)存進(jìn)行直接的操作?
可以,通過(guò)加一個(gè)unsafe關(guān)鍵字實(shí)現(xiàn)。
4.C#中結(jié)構(gòu)和類(lèi)的區(qū)別
機(jī)構(gòu)和類(lèi)具有大體的語(yǔ)法,結(jié)構(gòu)受到的限制比類(lèi)要多。結(jié)構(gòu)不能聲明構(gòu)造函數(shù)。結(jié)構(gòu)是值類(lèi)型,類(lèi)是引用類(lèi)型。結(jié)構(gòu)的實(shí)例化可以不使用new關(guān)鍵字。類(lèi)可以實(shí)現(xiàn)接口,結(jié)構(gòu)不可以。
5.接口可否繼承接口?抽象類(lèi)可否實(shí)現(xiàn)接口?抽象類(lèi)可否繼承實(shí)體類(lèi)?
(1)接口可以繼承接口
(2)抽象類(lèi)可以實(shí)現(xiàn)接口
(3)抽象類(lèi)可以繼承實(shí)體類(lèi),但是有個(gè)條件,實(shí)體類(lèi)必須有明確的構(gòu)造方法。
6.構(gòu)造器Constructor是否可以被繼承?是否可以被重寫(xiě)(Override)?
構(gòu)造器不可以被繼承,因此不能被重寫(xiě),但可以被重載(overload)。
7.Error和Exception的區(qū)別
error 表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問(wèn)題。比如說(shuō)內(nèi)存溢出。不可能指望程序能處理這樣的情況; exception 表示一種設(shè)計(jì)或?qū)崿F(xiàn)問(wèn)題。也就是說(shuō),它表示如果程序運(yùn)行正常,從不會(huì)發(fā)生的情況。
8.說(shuō)說(shuō)你對(duì)C#中的委托的理解
委托是一個(gè)類(lèi),它定義了方法的類(lèi)型,使得可以將方法當(dāng)作另一個(gè)方法的參數(shù)來(lái)進(jìn)行傳遞,這種將方法動(dòng)態(tài)地賦給參數(shù)的做法,可以避免在程序中大量使用If-Else(Switch)語(yǔ)句,同時(shí)使得程序具有更好的可擴(kuò)展性。事件是一種消息機(jī)制,是一種委托,委托不帶方法體。
9.簡(jiǎn)述反射與序列化
反射:其實(shí)就對(duì)程序集的動(dòng)態(tài)操作,程序集包括了模塊,而模塊里面包含類(lèi)型,類(lèi)型又包含成員。反射提供了封裝程序集,模塊和類(lèi)型的對(duì)象。
我們可以使用反射動(dòng)態(tài)的創(chuàng)建類(lèi)型的實(shí)例,將類(lèi)型綁定到現(xiàn)有的對(duì)象,或者從現(xiàn)有對(duì)象中獲取類(lèi)型,然后就可以調(diào)用類(lèi)型的方法或訪(fǎng)問(wèn)字段和屬性了。
序列化:簡(jiǎn)單理解成把對(duì)象轉(zhuǎn)換為容易傳輸?shù)母袷降倪^(guò)程。比如,可以序列化一個(gè)對(duì)象,然后使用HTTP通過(guò)Internet在客戶(hù)端和服務(wù)器端之間傳輸該對(duì)象。
在另一端可以使用反序列化從該流重新構(gòu)造對(duì)象。
10.C#中值類(lèi)型和引用類(lèi)型的區(qū)別
(1)值類(lèi)型的數(shù)據(jù)存儲(chǔ)在內(nèi)存的棧中;引用類(lèi)型的數(shù)據(jù)存儲(chǔ)在內(nèi)存的堆中,而內(nèi)存單元中只存放堆中對(duì)象的地址。
(2)值類(lèi)型存取速度快,引用類(lèi)型存取速度慢。
(3)值類(lèi)型表示實(shí)際數(shù)據(jù),引用類(lèi)型表示指向存儲(chǔ)在內(nèi)存堆中的數(shù)據(jù)的指針或引用
(4)值類(lèi)型繼承自System.ValueType,引用類(lèi)型繼承自System.Object
(5)棧的內(nèi)存分配是自動(dòng)釋放;而堆在.NET中會(huì)有GC來(lái)釋放
(6)值類(lèi)型的變量直接存放實(shí)際的數(shù)據(jù),而引用類(lèi)型的變量存放的則是數(shù)據(jù)的地址,即對(duì)象的引用。
歡迎補(bǔ)充……
11.談?wù)勀銓?duì)三層架構(gòu)的認(rèn)識(shí)
(1)DAL:數(shù)據(jù)訪(fǎng)問(wèn)層,直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查。
(2)BLL:業(yè)務(wù)邏輯層,對(duì)數(shù)據(jù)業(yè)務(wù)的處理。
(3)UI:表現(xiàn)層,對(duì)處理過(guò)的數(shù)據(jù)展現(xiàn)給用戶(hù)。
優(yōu)點(diǎn):體現(xiàn)面向?qū)ο缶幊痰乃枷耄焊邇?nèi)聚低耦合,提高擴(kuò)展性。
12. ado.net使用到哪些類(lèi)?
SqlConnection、SqlDataAdaptor、DataSet、SqlCommand、SqlDataReader
13.SQL語(yǔ)句實(shí)現(xiàn)分頁(yè):在表T中(有自增子段ID)查詢(xún)第31-40條記錄
select * from (select ROW_NUMBER() over (order by ID) as rowNum,* from T) as t where rowNum between 31 and 40
歡迎各位補(bǔ)充,希望這些對(duì)需要的人有點(diǎn)用。
您可能感興趣的文章:- ASP.net基礎(chǔ)知識(shí)之常見(jiàn)錯(cuò)誤分析