c#學習中的小總結

  1. 從網上學習整理了一下幾點C#比較不同的地方,通過互現比較來記憶。
  2. C#不支持多重繼承,這一點和Java一樣
  3. 在標準的C#安全代碼中不支持指針類型的操作,你可以微軟所謂的“非安全代碼”中操作指針類型對象,但是最後還是不推薦使用指針。
  4.  C#中所有對象都只能通過關鍵詞“new”來創建,一切皆對象,不愧是j++。
  5. 數組變爲了類,因此對於數組裏的元素,所以我們可以比較簡單地調用各種函數,比c++舒服多了!
  6.  在C#裏面,數組的元素都是存放在託管堆裏面,比起C++的在內存裏不確定位置申請一塊連續空間要安全得多。
  7.  C++的switch後跟參數必須是int型,而C#卻允許string型,但是其實c++用enum也是一樣可以做到同樣的效果的。
  8.  C#會禁止所有switch..case語句的失敗情形,除非case語句後是空格,否則執行了前一個case語句就算沒有break也會停止執行後面的case語句。所以如果要利用這一點的同學,需要直接把幾種情況一次寫好。可以避免一些錯誤。
  9.  在異常處理上,C++允許拋出任何類型,而C#中規定拋出類型爲一個派生於System.Exception的對象。
  10.  C++的宏在C#中被拋棄了很多,而且也不建議使用,因此很少見。
  11.  C++的模板在C#裏沒有了,但在C#中我們找到了能完成模板任務的更鋒利的武器:委託。deleget!
  12.  C++的全局變量這一概念沒有了,C#和JAVA類似,要把所有東西都放在類裏面,還建議使用命名空間包含起來。這裏給我的感覺是對於大型開發更友好,雖然我沒做過大型的開發,但是寫小程序的時候感覺有點煩!!!!!!
  13. C#可以在定義類的時候直接給屬性賦值,而C++這麼做卻會編譯出錯。這個是理解爲一個默認的構造函數初始化了。
  14.  C#裏有靜態構造函數一個概念,這個構造函數只執行一次,因此能夠保證一些靜態成員只被初始化一遍。
  15. C#有自動垃圾收集機制,防止內存泄露 。不過gc也差不多幾乎都是標配了。
  16. 更強的類型轉換保護機制,比如說把float轉成uint,直接轉換0.35會變成0.34,是因爲二進制無法表示這樣的數字,使用System.Conver裏的方法,可以安全地把類型安全轉換過來。
  17.  委託與事件、裝箱與取消裝箱、Web Services……一大堆C++沒有的新東西,我感覺是做大型項目方便了管理,也容易擴充,但做起小型項目,由於是編譯成IL代碼的,運行需要.NET Framework SDK支持,效率是個問題,不利於做那些對運算速度和內存消耗要求高的項目。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章