學習曲線 - python c#比較




我如何從Java轉移到C#? (6)

我很了解Java。 哪些告誡和資源將幫助我盡可能無痛地跨越對方(C#)。


從Java開發人員的角度看這篇關於C#的文章。 它對雙方都能做的事情有一些了解,以避免最小的開銷。 以您熟悉的語言和您想學習的語言為例,可以使學習曲線變得相當簡單。


最大的提示:使用單詞go的.NET命名約定 。 通過這種方式,你會不斷被提醒你在使用哪種語言。(聽起來很愚蠢,但是確實有幫助。)盡可能地接受這種語言的習慣用法。

在你的情況下,專門為人們準備了各種書籍 - 在亞馬遜搜索“C#for Java”,你會得到大量的點擊。 這是值得仔細閱讀以確保你不要以為在C#中的事情會和Java一樣。 (例如,在C#中,變量初始值設定項是在基類構造函數體之前執行的;在Java中它們發生在後面,這樣的微妙的事情可能需要一段時間才能學習,如果你正在瀏覽,很容易就會錯過。

如果你打算使用C#3,那麼我會得到一本絕對涵蓋這本書的書--C#3中的所有內容對你來說都是新鮮事物。 免費插件:我自己的書( C#深入 )涵蓋了C#2和3,但是假設你已經知道C#1(換句話說,它本身是不夠的,但是你可能希望它成為“第二”書。)



使用銳化將您的Java程序轉換為C#並查看差異。


我知道一個好的答案已經被接受了。 不過,我想補充一點...

我發現,學習一門新的語言通常涉及到學習微妙的語法差異......特別是在處理C / C ++ / Java / C#系列語言之間的差異時。

除了一本不錯的參考書以外,我還建議您從O'Reilly那裡獲取一個口袋參考資料,例如C#3 Pocket Reference 。 它不會幫助你的設計模式等,但會提供一個非常快速的參考您正在使用的語言的具體差異。

以下是該網站對本書的簡短介紹:

C#3.0 Pocket Reference包含大量插圖和代碼示例來解釋:

  • C#3.0新增特性,如lambda表達式,匿名類型,自動屬性等
  • C#語法的所有方面,預定義的類型,表達式和操作符
  • 創建類,結構,委託和事件,枚舉,泛型和約束,異常處理和迭代器
  • 裝箱,操作重載,委託協變,擴展方法解析,接口重新實現,可空類型和操作提升的細微之處
  • LINQ,從序列原則開始,延遲執行和標準查詢操作符,並完成對查詢語法的完整引用 - 包括多個生成器,連接,分組和查詢連續
  • 消費,寫作和反思自定義屬性

我使用這本書(和原來的)來幫助我從一個Java變成一個C#開發人員。 在我學習的時候,我總是把它放在桌子上,這真的很有幫助。


  1. 使用IntelliJ IDEA密鑰綁定安裝Visual Studio 2008和Resharper。 這給了你一些提示,如果你開始使用它們,就包含命名空間。
  2. 開始一個新的項目,並開始編寫Java代碼,當你遇到了一些不能正常工作的東西,或者無法找到你正在嘗試使用Google的“PrintLn in C#”的類。
  3. 編寫測試或代碼片段進行健全性檢查,就像你可能想檢查==是否適用於字符串(它確實)
  4. 意識到c#別名數據類型(int是System.Int32的別名,System.String的字符串)
  5. 看看別人的代碼我推薦JP Boodhoos的Google代碼
  6. 在C#工作,有很多工作需要Java和C#特別是支持。
  7. 知道你的庫,大多數Java庫已經被移植,大部分時候這個名字或者是(Hibernate => NHibernate)或者(Xstream => Xstream.Net)。 並不是每個圖書館都有一個明顯的名字,所以開始尋找你在這裡聽到的隨機的。 即(Rhino.Mocks,HTMLAgilityPack,MBUnit,Rhino.Commons,Castle Project)
  8. 去用戶組會議尋找DNUG(DotNet用戶組),他們會很有幫助,你可以得到一些很好的建議。




java