程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 你是高級程序員?那就來挑戰一下!,程序員來挑戰

你是高級程序員?那就來挑戰一下!,程序員來挑戰

編輯:C#入門知識

你是高級程序員?那就來挑戰一下!,程序員來挑戰


基礎題:

  1. 傳入某個屬性的set方法的隱含參數的名稱是什麼? value,它的類型和屬性所聲名的類型相同。
  2. 如何在C#中實現繼承? 在類名後加上一個冒號,再加上基類的名稱。
  3. C#支持多重繼承麼? 不支持。可以用接口來實現。
  4. 被protected修飾的屬性/方法在何處可以訪問? 在繼承或間接繼承與這個類的子類中可以訪問。
  5. 私有成員會被繼承麼? 會,但是不能被訪問。所以看上去他們似乎是不能被繼承的,但實際上確實被繼承了。
  6. 請描述一下修飾符protected internal。  被protected internal修飾的屬性/方法只能在它的在同一個程序集(Assembly)中的子類被訪問。
  7. C#提供一個默認的無參數構造函數,當我實現了另外一個有一個參數的構造函數時候,還想保留這個無參數的構造函數。這樣我應該寫幾個構造函數? 兩個,一旦你實現了一個構造函數,C#就不會再提供默認的構造函數了,所以需要手動實現那個無參數構造函數。
  8. C#中所有對象共同的基類是什麼? System.Object.
  9. 重載和覆寫有什麼區別? 重載提供了對一個方法簽名的不同參數調用的實現。覆寫提供了子類中改變父類方法行為的實現。
  10. 在方法定義中,virtual有什麼含意?  被virtual修飾的方法可以被子類覆寫。
  11. 能夠將非靜態的方法覆寫成靜態方法麼? 不能,覆寫方法的簽名必須與被覆寫方法的簽名保持一致,除了將virtual改為override。
  12. 可以覆寫私有的虛方法麼? 不可以,如果一個方法是虛方法,就不應該定義成私有的!
  13. 能夠阻止某一個類被其他類繼承麼?  可以,使用關鍵字sealed。
  14. 能夠實現允許某個類被繼承,但不允許其中的某個方法被覆寫麼?  可以,標記這個類為public,並標記這個方法為sealed。(注意:這個方法必須是覆蓋了父類中的一個虛方法,否則,無法使用sealed)
  15. 什麼是抽象類(abstract class)? 一種不可以被實例化的類。抽象類中一般含有抽象方法,當然也可有具體實現。繼承類只有實現過所有抽象類的抽象方法後才能被實例化。
  16. 何時必須聲明一個類為抽象類?  當這個類中包含抽象方法時,或是該類並沒有完全實現父類的抽象方法時。
  17. 接口(interface)是什麼? 只含有共有抽象方法(public abstract method)的類。這些方法必須在子類中被實現。
  18. 為什麼不能指定接口中方法的修飾符?  接口中的方法用來定義對象之間通信的契約,指定接口中的方法為私有或保護沒有意義。他們默認為公有方法。
  19. 可以繼承多個接口麼?  當然。
  20. 那麼如果這些接口中有重復的方法名稱呢?  這種情況中你可以決定如何實現。當然需要特別得小心。但是在編譯環節是沒有問題的。
  21. 接口和抽象類的區別是什麼?  接口中所有方法必須是抽象的,並且不能指定方法的訪問修飾符。抽象類中可以有方法的實現,也可以指定方法的訪問修飾符。
  22. 如何區別重載方法?  不同的參數類型,不同的參數個數,不同的參數順序。
  23. const和readonly有什麼區別? const關鍵字用來聲明編譯時常量,readonly用來聲明運行時常量。
  24. System.String 和System.StringBuilder有什麼區別? System.String是不可變的字符串。System.StringBuilder存放了一個可變的字符串,並提供一些對這個字符串修改的方法。


高級題:

      1. Thread和Process之間有什麼區別?.NET新引入了Application Domain的概念,這樣他們三個之間有什麼區別?引入了Application Domain會帶來一些潛在的問題麼?
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved