C#支持所有關鍵的面向對象的概念,如封裝、繼承和多態性。完整的C#類模式構建在NGWS運行時的虛擬對象系統(VOS,Virtual Object System)的上層,VOS將在下章描述。對象模式只是基礎的一部分,不再是編程語言的一部分。
C#不再有全局函數、變量或者是常量。所有的東西都封裝在類中,包括事例成員(通過類的事例--對象可以訪問)或都靜態成員(通過數據類型)。這些使C#代碼更加易讀且有助于減少潛在的命名沖突。
定義類中的方法默認是非虛擬的(它們不能被派生類改寫)。主要論點是,這樣會消除由于偶爾改寫方法而導致另外一些原碼出錯。要改寫方法,必須具有顯式的虛擬標志。 這種行為不但縮減速了虛擬函數表,而且還確保正確版本的控制。
使用C++編寫類,您可以使用訪問權限(access modifiers) 給類成員設置不同的訪問等級。C#同樣支持private、protected 和public 三種訪問權限 ,而且還增加了第四種:internal。
多基類惹出的麻煩通常比它們解決的問題還多。那就是為什么C#僅允許一個基類。如果您覺得需要多重繼承,可以運用接口。
一個可能出現的問題:在C#中不存在指針,如何模仿它? 這個問題的答案很有代表性,它提供了對NGWS運行時事件模式的支持。
新聞熱點
疑難解答
圖片精選