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