想學習 C#,案頭有兩本書(CLR via C# 和 C# in Depth),不知學習順序是怎麼樣的?

CLR via C# (CLR via C# (豆瓣))

C# in Depth (深入理解C#(第2版) (豆瓣))

不知道學習順序是怎麼樣的?

我之前是做iOS開發的,C和C++的程度是熟練,iOS上面的技術、框架、語言比C和C++要更好,但是不敢說精通。

對於面向對象變成理解比較透徹。之前也零零散散看過一些C#的文章,大概50小時。

我現在想學習C#,想請問這2本書的閱讀順序應該是怎麼樣的?

另外,我想問問web app用C#來做的項目,有什麼開源的實例么?


只看過第一本,是jeffrey richter寫的,這是一個寫多線程/分散式的大牛。C#的語法很容易的,你先搞搞,熟悉一下類庫,然後看CLR via C#(同時還有Windows via C++系列)


一起看唄,看你連這種問題都問,我保證兩本書看得都不順利,所以哪本卡了就換另一本吧……


謝謝邀請。

大概瀏覽了一下兩本書的試讀。我個人建議可以考慮直接從 CLR via C# 開始。考慮到提問者並不是沒有開發經驗的初學者,而 C# in Depth 更接近是給編程初學者看的書,側重語言特性,缺少對發布、調試等環境級別的內容的介紹。CLR via C# 似乎更加適合有經驗的開發者使用。

另外,這兩本書我都沒看過。我的工作性質不允許我們使用 C# 作為主要開發語言。我用 C# 的全部經驗只來自幫一群熊孩子調試他們代碼里各種莫名其妙的 bug。所以回答也許不權威。見諒。


我原來學習C++的時候把市面上所有的C++經典全買了(BS的兩本、Essential系列、Effective系列、Exceptional系列、Ruminations、Primer、Object Model、Thinking in、侯捷系列等),然後輪流讀、反覆讀

不過C++水平有了質變倒是去負責維護一個C/C++商業編譯器的標準庫才有的。自從動手寫過實現後,就會發現講「怎麼用」的書都很淺了,根本都用不著花那麼多時間看。@vczh的策略(造輪子)是最好的學習策略


看過第二本,講C#語言層面,不涉及CLR和類庫(WPF/WCF等等)

按照C#從1到4.5的發展脈絡,從語言設計者的角度,解釋了如下問題:

  • 為什麼要在某個版本中加入某個語言特性(語法糖)?解決了上個版本的什麼不足?或者是為了構建新的大框架(例如LINQ)?

簡單列舉下一些實用的語言特性:

  • C# 2: 泛型、可空類型、匿名委託、迭代器
  • C# 3: 很多個革新性的語法糖,都是為了構建LINQ這個大的圖景:

    自動實現的屬性、隱式類型、對象集合初始化、匿名類型、Lambda表達式、擴展方法

    最後是介紹LINQ

  • C# 4: 可選參數、實名參數、動態類型,主要是為了COM互操作。另外有代碼契約
  • C# 4.5: async和await

以上是我認為使用C#大幅度提高開發效率最重要的武器庫。

對一些複雜的概念,如協變性和逆變性,書中也做了詳盡的解釋——和Java等其他語言的區別,以及設計者做了哪些權衡。

英文已經有第3版,中文只翻譯到第2版,差了4.5的部分,影響不大。書的網站有每章的示例代碼。


開始的時候一本也不看,大量的時間用在寫代碼,參考msdn就行,等你開始項目幾個月後,再看別的書,而且要優先學框架,語言放後


clr那本大埠頭不適合新手上來直接讀,適合在.net技術上有一定經驗的人做深入學習了解用,因為內容確實比較堅澀:),上來就讀無益。個人愚見。


我感覺還是項目驅動的比較好,找幾個簡單的開源項目看看就行


不用專門看,既然熟悉cpp直接寫就可以了,去msdn弄些sample看看半天就可以開始動手了。


讀過clr,感覺不錯,結合項目一起來效果更好。裡面的點比較細,需要多讀幾遍!


CLR via C# 吧


都會ios了 不知道你為什麼還要去學c#


推薦閱讀:

請舉幾個是上下文無關文法而非正則文法的例子?

TAG:程序員 | 編程語言 | 編程 | C# | CC |