如何从Java迁移到C#?

时间:2008-10-17 14:01:58

标签: c# java

我很了解Java。哪些警告和资源将帮助我尽可能轻松地跨越另一方(C#)。

9 个答案:

答案 0 :(得分:33)

最大提示:请使用单词go中的.NET naming conventions。通过这种方式,您将不断被提醒您所处的语言。(听起来很愚蠢,但它确实很有用。)尽可能地接受语言的习语。

在你的情况下,有各种各样的专门针对人们的书籍 - 在亚马逊搜索“C#for Java”,你会获得大量的点击率。值得仔细阅读 ,以确保您不会认为C#中的内容与Java相同。 (例如,在C#实例中,变量初始值设定项在基类构造函数体之前执行;在Java中它们发生在它之后。像这样的微妙的东西可能需要一段时间才能学习,如果你正在略读则容易错过。)

如果您打算使用C#3,我会得到一本绝对涵盖的书 - C#3中的所有内容对您来说都是新的。无偿的插件:我自己的书(C# in Depth)涵盖C#2和3,但假设你已经知道C#1。(换句话说,它本身是不够的,但你可能想要它作为一个“第二本“书。”

答案 1 :(得分:13)

请参阅C# from a Java Developer's Perspective上的这篇精彩文章。它对双方可以做的事情有几点见解,以避免最小的开销。以您熟悉的语言和您想学习的语言为例,可以简化学习过程。

答案 2 :(得分:3)

  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 code
  6. 在C#工作,有很多工作需要Java和C#,特别是在支持方面。
  7. 了解您的库,大多数Java库已被移植,并且大部分时间名称都是(Hibernate => NHibernate)或(Xstream => Xstream.Net)。不是每个图书馆都有一个明显的名称,所以只需开始研究你在这里听到的随机图书。 ie(Rhino.Mocks,HTMLAgilityPack,MBUnit,Rhino.Commons,Castle Project)
  8. 转到用户组会议寻找DNUG(Dot Net用户组),他们会提供帮助,您可以获得一些好的建议。

答案 3 :(得分:1)

我知道已经接受了一个好的答案。但是,我想补充一下......

我发现学习一门新语言通常需要学习细微的语法差异......特别是在处理C / C ++ / Java / C#系列语言之间的差异时。

除了一本很好的厚厚的参考书,我还建议你找一个像C# 3 Pocket Reference from O'Reilly这样的口袋参考书。它对设计模式等没有帮助......但会提供非常快速的参考,说明您正在使用的语言的具体差异。

以下是该网站对本书的简要介绍:

  

C#3.0 Pocket Reference包含大量插图和代码示例,供您解释:

     
      
  • C#3.0的新功能,例如lambda表达式,匿名类型,自动属性等
  •   
  • C#语法,预定义类型,表达式和运算符的所有方面
  •   
  • 创建类,结构,委托和事件,枚举,泛型和约束,异常处理和迭代器
  •   
  • 拳击的微妙之处,操作重载,委托协方差,扩展方法解析,界面重新实现,可空类型和操作提升
  •   
  • LINQ,从序列原理,延迟执行和标准查询运算符开始,最后完成对查询语法的完整引用 - 包括多个生成器,连接,分组和查询延续
  •   
  • 使用,编写和反映自定义属性
  •   

我使用这本书(原文)来帮助我从一个Java变成一个C#开发人员。在我学习的过程中,我一直把它放在我的办公桌旁,这真的很有帮助。

答案 4 :(得分:1)

我在工作中使用C#很容易实现转换,但最重要的事情之一就是熟悉.NET API和C#中提供的一些强大技术。

在我学习.net库之后,我比以前更依赖它了,所以了解它可以为你做的事情是非常有帮助的。之后,如果您使用db代码,请学习LINQ,并且还可以使用lambas,匿名类型和委托等技术。

答案 5 :(得分:0)

语言语法有所不同,所以我应该只阅读C#语法的一个小参考。就像一本简单的书(对于有经验的程序员)或维基百科(http://en.wikipedia.org/wiki/Comparison_of_Java_and_C_Sharp)会说得足够多。

最大的区别是库:Asp.Net网站与java servlet完全不同。

阅读不多,只需开始编程!

答案 6 :(得分:0)

这是一个在Java和C#之间进行语法比较的链接(尽管它几乎相同,但存在一些差异)。

http://www.harding.edu/fmccown/java1_5_csharp_comparison.html

答案 7 :(得分:0)

使用Sharpen将您的Java程序转换为C#并查看差异。

答案 8 :(得分:0)

Microsoft提供了cheat-sheet,供使用C#的Java开发人员使用:)