1、override與重載的區(qū)別
答:其實(shí)很本質(zhì)的區(qū)別就是看函數(shù)特征:覆寫(xiě)(Override)的兩個(gè)函數(shù)的函數(shù)特征相同,重載(Overload)的兩個(gè)函數(shù)的函數(shù)名雖然相同,但函數(shù)特征不同。 函數(shù)特征包括函數(shù)名,參數(shù)的類型和個(gè)數(shù)。Override 是在繼承的時(shí)候,如果你寫(xiě)的函數(shù)與要繼承的函數(shù)函數(shù)特征相同,那么,加上這個(gè)關(guān)鍵字,在使用這個(gè)子類的這個(gè)函數(shù)的時(shí)候就看不見(jiàn)父類(或超類)的函數(shù)了,它被覆蓋掉了。
2、.net的錯(cuò)誤處理機(jī)制是什么
答:try{可能要出錯(cuò)的代碼}catch{出錯(cuò)后如何處理}finally{不論是否出錯(cuò)都要執(zhí)行}
3、C#中接口和類的異同
答:類是引用類型,可以繼承類、接口和被繼承,有默認(rèn)的構(gòu)造函數(shù),有析構(gòu)函數(shù),可以使用abstract和sealed,有protected修飾符,必須使用new初始化。
接口可以說(shuō)是比抽象類更抽象的類,只能繼承接口,是一種規(guī)范
4、DataReader和DataSet的異同
答:dataset是保存數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),斷開(kāi)模式,而DataReader不承擔(dān)保存數(shù)據(jù)的責(zé)任,需要自己手動(dòng)關(guān)閉連接數(shù)據(jù)庫(kù),它只負(fù)責(zé)從數(shù)據(jù)源讀取數(shù)據(jù)到本地而已,是只讀向前的,它不是數(shù)據(jù)結(jié)構(gòu),而是網(wǎng)絡(luò)通訊組件的高層封裝。
1.有哪幾種方法可以實(shí)現(xiàn)一個(gè)類存取另外一個(gè)類的成員函數(shù)及屬性,并請(qǐng)舉列來(lái)加以說(shuō)明和分析.
答:反射,base
2.如果需記錄類的實(shí)例個(gè)數(shù),該如何實(shí)現(xiàn),請(qǐng)寫(xiě)一個(gè)簡(jiǎn)單的類于以證明.
答:static int num = 0;在構(gòu)造函數(shù)里num++。
3.A類是B類的基類,并且都有自己的構(gòu)造,析構(gòu)函數(shù),請(qǐng)舉例證明B類從實(shí)例化到消亡過(guò)程中構(gòu)造,析構(gòu)函數(shù)的執(zhí)行過(guò)程.
答:A構(gòu)造 →B構(gòu)造 →B析構(gòu) →A析構(gòu)
4.需要實(shí)現(xiàn)對(duì)一個(gè)字符串的處理,首先將該字符串首尾的空格去掉,如果字符串中間還有連續(xù)空格的話,僅保留一個(gè)空格,即允許字符串中間有多個(gè)空格,但連續(xù)的空格數(shù)不可超過(guò)一個(gè).
答:string a = ” a b c d e c d “;
string d = a.Replace(” “, ” “);
while (true)
{
d = d.Replace(” “,” “);
if (d.IndexOf(” “) == -1)
{
break;
}
}