.net基礎(chǔ)收集匯總
下面是我收集的一些題目以及答案(答案可能有些包含我自己的見(jiàn)解,如有錯(cuò)誤請(qǐng)指出)。
1.面向?qū)ο蟮娜筇匦?BR>封裝、繼承、多態(tài)
2.裝箱和拆箱
裝箱:值類型轉(zhuǎn)換為引用類型
拆箱:引用類型轉(zhuǎn)換為值類型
.NET中,數(shù)據(jù)類型劃分為值類型和引用(不等同于C++的指針)類型,與此對(duì)應(yīng),內(nèi)存分配被分成了兩種方式,一為棧,二為堆,注意:是托管堆。
值類型只會(huì)在棧中分配。
引用類型分配內(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)和類的區(qū)別
機(jī)構(gòu)和類具有大體的語(yǔ)法,結(jié)構(gòu)受到的限制比類要多。結(jié)構(gòu)不能聲明構(gòu)造函數(shù)。結(jié)構(gòu)是值類型,類是引用類型。結(jié)構(gòu)的實(shí)例化可以不使用new關(guān)鍵字。類可以實(shí)現(xiàn)接口,結(jié)構(gòu)不可以。
5.接口可否繼承接口?抽象類可否實(shí)現(xiàn)接口?抽象類可否繼承實(shí)體類?
(1)接口可以繼承接口
(2)抽象類可以實(shí)現(xiàn)接口
(3)抽象類可以繼承實(shí)體類,但是有個(gè)條件,實(shí)體類必須有明確的構(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è)類,它定義了方法的類型,使得可以將方法當(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)操作,程序集包括了模塊,而模塊里面包含類型,類型又包含成員。反射提供了封裝程序集,模塊和類型的對(duì)象。
我們可以使用反射動(dòng)態(tài)的創(chuàng)建類型的實(shí)例,將類型綁定到現(xiàn)有的對(duì)象,或者從現(xiàn)有對(duì)象中獲取類型,然后就可以調(diào)用類型的方法或訪問(wèn)字段和屬性了。
序列化:簡(jiǎn)單理解成把對(duì)象轉(zhuǎn)換為容易傳輸?shù)母袷降倪^(guò)程。比如,可以序列化一個(gè)對(duì)象,然后使用HTTP通過(guò)Internet在客戶端和服務(wù)器端之間傳輸該對(duì)象。
在另一端可以使用反序列化從該流重新構(gòu)造對(duì)象。
10.C#中值類型和引用類型的區(qū)別
(1)值類型的數(shù)據(jù)存儲(chǔ)在內(nèi)存的棧中;引用類型的數(shù)據(jù)存儲(chǔ)在內(nèi)存的堆中,而內(nèi)存單元中只存放堆中對(duì)象的地址。
(2)值類型存取速度快,引用類型存取速度慢。
(3)值類型表示實(shí)際數(shù)據(jù),引用類型表示指向存儲(chǔ)在內(nèi)存堆中的數(shù)據(jù)的指針或引用
(4)值類型繼承自System.ValueType,引用類型繼承自System.Object
(5)棧的內(nèi)存分配是自動(dòng)釋放;而堆在.NET中會(huì)有GC來(lái)釋放
(6)值類型的變量直接存放實(shí)際的數(shù)據(jù),而引用類型的變量存放的則是數(shù)據(jù)的地址,即對(duì)象的引用。
歡迎補(bǔ)充……
11.談?wù)勀銓?duì)三層架構(gòu)的認(rèn)識(shí)
(1)DAL:數(shù)據(jù)訪問(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)給用戶。
優(yōu)點(diǎn):體現(xiàn)面向?qū)ο缶幊痰乃枷耄焊邇?nèi)聚低耦合,提高擴(kuò)展性。
12. ado.net使用到哪些類?
SqlConnection、SqlDataAdaptor、DataSet、SqlCommand、SqlDataReader
13.SQL語(yǔ)句實(shí)現(xiàn)分頁(yè):在表T中(有自增子段ID)查詢第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)用。
相關(guān)文章
Asp.Net生成靜態(tài)頁(yè)面的實(shí)現(xiàn)方法
這篇文章介紹了Asp.Net生成靜態(tài)頁(yè)面的實(shí)現(xiàn)方法,有需要的朋友可以參考一下2013-10-10ASP.NET將文件寫(xiě)到另一服務(wù)器(圖文教程)及注意事項(xiàng)
有時(shí)我們需要將來(lái)自于客戶端的文件上傳到WEB服務(wù)器端,并在服務(wù)端將文件存儲(chǔ)到第三方文件服務(wù)器中存儲(chǔ),既然有需求,那就有實(shí)現(xiàn)了,感興趣的你可以了解此文,或許對(duì)你學(xué)習(xí)asp.net 起到很好的作用哦2013-01-01在Global.asax文件里實(shí)現(xiàn)通用防SQL注入漏洞程序(適應(yīng)于post/get請(qǐng)求)
可使用Global.asax中的Application_BeginRequest(object sender, EventArgs e)事件來(lái)實(shí)現(xiàn)表單或者URL提交數(shù)據(jù)的獲取,獲取后傳給SQLInjectionHelper類ValidUrlData方法來(lái)完成檢查2013-01-01ASP.NET Core根據(jù)環(huán)境變量支持多個(gè) appsettings.json配置文件
這篇文章主要介紹了ASP.NET Core根據(jù)環(huán)境變量支持多個(gè) appsettings.json配置文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08微信JS-SDK分享功能的.Net實(shí)現(xiàn)代碼
這篇文章主要介紹了微信JS-SDK分享功能的.Net實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-09-09ASP.NetCore使用Swagger實(shí)戰(zhàn)
這篇文章主要介紹了ASP.NetCore使用Swagger實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11ASP.NET對(duì)路徑"xxxxx"的訪問(wèn)被拒絕的解決方法小結(jié)
異常詳細(xì)信息: System.UnauthorizedAccessException: 對(duì)路徑“D:/temp1/MyTest.txt”的訪問(wèn)被拒絕2012-09-09