.Net面试题(1)
生活随笔
收集整理的這篇文章主要介紹了
.Net面试题(1)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. 面試時有相當(dāng)大的可能會被問到面向?qū)ο竦奶攸c:繼承,封裝,多態(tài)。 封裝:每個對象都包含它能進行操作所需要的所有信息,這個特性稱為封裝,因此對象不必依賴其他對象來完成自己的操作。 繼承:對象的繼承代表了一種“is-a”的關(guān)系,如果兩個對象A和B,可以描述為“B是A”,則表明B可以繼承A。 多態(tài):表示不同的對象可以執(zhí)行相同的動作,但要通過它們自己的實現(xiàn)代碼來執(zhí)行。 2.集合 ArrayList是命名空間System.Collections下的一部分,它是使用大小可以按需要動態(tài)增加的數(shù)組實現(xiàn)IList接口。 3.泛型 泛型是具有占位符(類型參數(shù))的類、結(jié)構(gòu)、接口和方法,這些占位符是類、結(jié)構(gòu)、接口和方法所存儲或使用的一個或多個類型的占位符。泛型集合類可以將類型參數(shù)用作它所存儲的對象的類型占位符;類型參數(shù)作為其字段的類型和其方法的參數(shù)類型出現(xiàn)。 IList<A> arrA = new List<A>(); 通常情況下,都建議使用泛型集合,因為這樣可以獲得得類型安全的直接優(yōu)點而不需要從基集合類型派生并實現(xiàn)類型的特定成員。此外,如果集合元素為值類型,泛型集合的性能通常優(yōu)于對應(yīng)的非泛型集合類型(并優(yōu)于從非泛基集合型類型派生的類型),因為使用泛型時不必對元素進行裝箱。 4.委托和事件 委托是對函數(shù)的封裝,可以當(dāng)作給方法的特征指定一個名稱。而事件則是委托的一種特殊形式,當(dāng)發(fā)生有意義的事情時,事件對象處理通知過程。 委托是一種引用方法的類型。一旦為委托分配了方法,委托將與該方法具有完全相同的行為。事件是在發(fā)生其他類或?qū)ο箨P(guān)注的事情時,類或?qū)ο罂赏ㄟ^事件通知它們。 public delegate void CatShoutEventHandler(); public event CatShoutEventHandler CatShout; EventArges是包含事件數(shù)據(jù)的類的基類。
經(jīng)常會被問到的二個算法:冒泡排序和二分法。以下是兩個比較經(jīng)典的實現(xiàn)。 ? 冒泡排序算法: ????????public void BubbleSort(int[] arr)
????????{
????????????for (int i = 1; i < arr.Length; i++)
????????????????for (int j = 0; j < arr.Length - i; j++)
????????????????{
????????????????????if (arr[j] > arr[j + 1])
????????????????????{
????????????????????????int tmp = arr[j];
????????????????????????arr[j] = arr[j + 1];
????????????????????????arr[j + 1] = tmp;
????????????????????}
????????????????}
????????} 二分法查找: ????????public int HalfSearch(int key, int[] arr)
????????{
????????????int left = 0;
????????????int right = arr.Length - 1;
????????????while (left <= right)
????????????{
????????????????int middle = (left + right) / 2;
????????????????if (key == arr[middle])
????????????????????return middle;
????????????????else if (key > arr[middle])
????????????????{
????????????????????left = middle + 1;
????????????????}
????????????????else
????????????????{
????????????????????right = middle - 1;
????????????????}
????????????}
????????????return -1;
????????}
經(jīng)常會被問到的二個算法:冒泡排序和二分法。以下是兩個比較經(jīng)典的實現(xiàn)。 ? 冒泡排序算法: ????????public void BubbleSort(int[] arr)
????????{
????????????for (int i = 1; i < arr.Length; i++)
????????????????for (int j = 0; j < arr.Length - i; j++)
????????????????{
????????????????????if (arr[j] > arr[j + 1])
????????????????????{
????????????????????????int tmp = arr[j];
????????????????????????arr[j] = arr[j + 1];
????????????????????????arr[j + 1] = tmp;
????????????????????}
????????????????}
????????} 二分法查找: ????????public int HalfSearch(int key, int[] arr)
????????{
????????????int left = 0;
????????????int right = arr.Length - 1;
????????????while (left <= right)
????????????{
????????????????int middle = (left + right) / 2;
????????????????if (key == arr[middle])
????????????????????return middle;
????????????????else if (key > arr[middle])
????????????????{
????????????????????left = middle + 1;
????????????????}
????????????????else
????????????????{
????????????????????right = middle - 1;
????????????????}
????????????}
????????????return -1;
????????}
轉(zhuǎn)載于:https://blog.51cto.com/recoverypeak/140320
總結(jié)
以上是生活随笔為你收集整理的.Net面试题(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: apachectl startssl启动
- 下一篇: 浅谈netbios及其相关内容