C#與C及OC的不同點,

來源:互聯網
上載者:User

C#與C及OC的不同點,

其實熟悉這些語言的朋友們深知,這幾個語言完全沒有可比性。

由於工作需要,最近需要重溫C#語言,難免會受到C和OC的基礎知識影響。

此篇是本人的一個學習筆記,僅此獻給有C/OC基礎,需要繼續學習C#的朋友們。


博文首發地址:http://blog.csdn.net/duzixi


今後不斷更新,歡迎大家補充修正(最後更新日期:2014.11.6)


 第1講 基礎:常量 變數 運算子 運算式 語句***** C#提供的基本類型更多,劃分更細
***** C#裡bool類型就是bool類型,嚴格區別於整形
***** C#中的控制台輸入都是字元流,擷取其它類型需要用Parse方法轉化int a = int.Parse(Console.Readline());
***** C#的聲明與實現不分離《C#本質論 (第三版)》p.121

 第2講 分支結構***** C#裡switch case 中 switch運算式的值還可以是字串類型
 第3講 迴圈結構  數組
***** C#的數組本質是System.Array 的對象。它是所有數群組類型的抽象基底類型。必須進行執行個體化。聲明數組時,方括弧 ([]) 必須跟在類型後面,而不是標識符後面,且數組的大小不是其類型的一部分。如:bool[], byte[], int[],  float[], double[], string[], 
*****  C#裡二維數組和數組的數組(交錯數組)是兩個東西二維數組定義:string[,] names;交錯數組 (jagged array):byte[][] scores;http://msdn.microsoft.com/zh-cn/library/aa288453(v=vs.71).aspx
***** C#裡數組可以直接賦值,但是和C一樣不能直接做加減運算
 第4講 枚舉和結構體***** C#中枚舉不是一個單純的整形常量http://msdn.microsoft.com/zh-cn/library/cc138362.aspx
***** C#中的結構體更強大、更靈活,裡面可以直接包含方法
***** C#中結構體的成員變數類型修飾符必須是public結構可以實現介面,但它們無法繼承另一個結構。 因此,結構成員無法聲明為 protected。http://msdn.microsoft.com/zh-cn/library/ah19swz4.aspx
 第5講 參考型別 字串***** C#有獨特的參考型別,是裝箱獲得的值類型裝箱後會被扔到堆裡http://msdn.microsoft.com/zh-cn/library/yz2be5wk.aspx
***** C#的字串是一個類
 第6講 類
***** C#的類裡包含方法、屬性、欄位、事件、委託以及內部嵌套的類等http://msdn.microsoft.com/zh-cn/library/ms173113.aspx一個類可包含下列成員的聲明:
建構函式(Constructor)
解構函式
常量(Const)
欄位(Field)
方法(Method)
屬性(Property)
索引器(Indexers)
運算子(Operator)
事件(Event)
委託(Delegate)
類(Class)
介面(Interface)
結構(Struct)
***** C#裡的修飾符特別豐富、可以修飾好多東西1.存取層級、控制有效範圍和許可權的:public protected private internal2.控制記憶體配置地區的:static const3.聲明函數參數的:ref out params4. 虛實:virtualhttp://msdn.microsoft.com/zh-cn/library/9fkccyh4.aspx
***** 存取權限

在其他選件類中可以直接在命名空間內聲明的選件類,未嵌套,可以是 公開 或 內部。 預設情況下選件類是 internal。

類成員,包括嵌套選件類,可以是 公開、protected internal、保護、內部或 專用。 預設情況下成員是 專用。

http://msdn.microsoft.com/zh-cn/library/0b0thckt.aspx
***** C#的屬性可以是唯寫的在欄位的基礎上建立,屬性開頭字母是大寫的
***** C#的函數只能在類裡面定義
***** C#有密封類
***** C#有base語句建構函式可以使用 base 關鍵字來調用基類的建構函式。http://msdn.microsoft.com/zh-cn/library/ms173115.aspx
 第7講 方法(函數)
***** C#的方法只能出現在類和結構體裡
***** C#裡有方法簽名的概念方法名 參數 及 參數類型http://msdn.microsoft.com/zh-cn/library/ms173114.aspx
***** C#的函數參數是有修飾符的ref:引用參數out:輸出參數params:一維數組
***** C#通過解構函式釋放記憶體資源
***** C#有虛方法http://msdn.microsoft.com/zh-cn/library/9fkccyh4.aspx
***** C#中稱之為方法簽名

 第8講 物件導向***** C#中有繼承關係的兩個類分別叫基類和衍生類別當基類將方法聲明為 virtual 時,衍生類別可以用自己的實現重寫該方法。 http://msdn.microsoft.com/zh-cn/library/ms173149.aspx?sentenceGu=431ef25c6bea78755c146f18e5e213ae#mt9
***** C#的多態比較多態,有多種實現方式
 第9講 靜態類和抽象類別
***** 靜態類和抽象類別是C#專屬的

 第10講 介面和泛型***** C#的介面類似OC的協議
http://blog.csdn.net/byondocean/article/details/6871881

 第11講 集合***** C#的集合分為泛型集合和非泛型集合http://msdn.microsoft.com/zh-cn/library/yz2be5wk.aspx

 第12講 委託和事件***** C#的委託類似於C的函數指標,但是型別安全,已經被封裝成了一個類型
***** C#的觀察者設計模式由委託和事件來實現

 第13講 反射***** 反射是C#專屬的


總的來說,感覺C#的修飾符特別的豐富,關於修飾符的內容還在整理中。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.