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#的修飾符特別的豐富,關於修飾符的內容還在整理中。